私の環境に設定ミスがあると思いますので、ご意見を伺いたいです。それを解決するためのアドバイスやヘルプは大歓迎です。
説明: 仮想ホスト名で jwilder/nginx-proxy コンテナーを使用して LDAP 管理者にアクセスする際に問題が発生しますが、公開されたポートを使用して実際の Linux ホスト名を介してアクセスすると正常に動作します。アクセスは、有効なワイルドカード証明書を使用した HTTPS で行われます。
環境: Linux (CentOS 7) で docker を実行しています。jwilder/nginx-proxy を使用して 1 つの docker コンテナーをセットアップし、さらに 2 つの docker コンテナーをセットアップしたいと考えています。したがって、ポートを公開せずに、ldapadmin へのアクセスは nginx を介して行われます。
これまでの手順:
1. コンテナの作成 - nginx プロキシ
docker run -d -p 80:80 -p 443:443 \
-v /home/admin/nginx/certs:/etc/nginx/certs \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
--name proxy \
jwilder/nginx-proxy
2. コンテナーの作成 - ldap
docker run --name ldap -p 636:636 \
-v /home/admin/nginx/certs:/container/service/slapd/assets/certs \
-v /data/slapd/database:/var/lib/ldap \
-v /data/slapd/config:/etc/ldap/slapd.d \
--hostname ldap.company.com \
--add-host=ldap.company.com:192.168.168.168 \
--env LDAP_ORGANISATION='Company ltd' \
--env LDAP_DOMAIN='company.com' \
--env LDAP_ADMIN_PASSWORD='Password' \
--detach osixia/openldap:1.2.2 \
「192.168.168.168」の代わりに、実際のパブリック IP アドレスです
次に、LDAPの検索に成功しました
docker exec ldap \
ldapsearch -x -H ldap://ldap.company.com \
-b dc=company,dc=com \
-D "cn=admin,dc=company,dc=com" \
-w Password\
3. コンテナー phpldapadmin を作成します。
docker run \
--name ldapadmin \
--env PHPLDAPADMIN_LDAP_HOSTS=ldap.company.com \
--expose 389 \
-e VIRTUAL_HOST=ldap.company.com \
-e VIRTUAL_PORT=389 \
--volume /home/admin/nginx/certs:/container/service/phpldapadmin/assets/apache2/certs \
--env PHPLDAPADMIN_HTTPS_CRT_FILENAME=ldap.company.com.crt \
--env PHPLDAPADMIN_HTTPS_KEY_FILENAME=ldap.company.com.key \
--env PHPLDAPADMIN_HTTPS_CA_CRT_FILENAME=ldap.company.com.crt \
--detach osixia/phpldapadmin:0.7.2
最後に、nginx プロキシ コンテナーを再起動して、ldap と ldapadmin を nginx 構成に自動的に追加します。
docker 再起動プロキシ
次に、この公開ポートを取得します。
画像ポート名
osixia/phpldapadmin:0.7.2 80/tcp、389/tcp、443/tcp ldapadmin
オシクシア/openldap:1.2.2 389/tcp、0.0.0.0:636->636/tcp ldap
Linux サーバーのホスト名は dev.company.com であり、パブリック アドレスがあり、https://dev.company.com:6443で ldapadmin にアクセスできますが、URL: ldap からはアクセスできません。 .company.com、ポートを公開せずに。Linux ホスト自体で ldap.company.com.key に ping を実行できません。
注: Jenkins に対しても同じことを行いました。
docker run -d --rm -u root -v /var/run/docker.sock:/var/run/docker.sock -v jenkins-data:/var/jenkins_home -v "$HOME":/home -e VIRTUAL_HOST=jenkins.company.com -e VIRTUAL_PORT=8080 --name nj ジェンキンス
そしてアーティファクトの場合:
docker run --name artifact -d -v /var/opt/jfrog/artifactory:/var/opt/jfrog/artifactory -e VIRTUAL_HOST=artifactory.company.com -e VIRTUAL_PORT=8081 artifactory-oss
これら2つの両方について、ping可能なURLがあり、パブリックIPアドレスが返され、ブラウザーを介して正常にアクセスできます:jenkins.company.comおよびartifactory.company.com
Linux ホスト自体で ldap.company.com.key に ping を実行できません。