![](/img/trans.png)
[英]How do I start a docker container in Docker-Compose from an app running in another docker container
[英]From a docker container how do I see another docker container?
基於: https : //github.com/osixia/docker-phpLDAPadmin
我使用以下命令運行OpenLDAP和phpLDAPadmin容器:
docker run --name ldap-service --hostname ldap-service --detach -p 389:389 -p 636:636 --detach osixia/openldap:1.1.8
docker run --name phpldapadmin-service --hostname phpldapadmin-service --link ldap-service:ldap-host --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin:0.7.1
(基於以下建議,我也嘗試了-p 689:689
並在jira中進行了相應調整,但得到相同的錯誤)。
我還從JIRA映像中啟動了另一個容器,其內容如下:
docker run -p 0.0.0.0:8087:8087 -d --name mycontainer jiraimage tail -f/dev/null
在主機上的瀏覽器中,我可以在以下位置訪問phpldapadmin Web界面:
和吉拉:
接下來,我嘗試在JIRA中配置一個指向正在運行的OpenLDAP服務器的LDAP目錄,但出現以下錯誤:
Connection test failed. Response from the server:
ldap-service:636; nested exception is javax.naming.CommunicationException: ldap-service:636 [Root exception is java.net.UnknownHostException: ldap-service]
因此,JIRA容器似乎看不到OpenLDAP容器的主機名。
我也嘗試過:在jira端上為172.17.0.3
,但結果相同。
如何獲取jira容器以查看OpenLDAP容器?
更多信息:
# docker version
Client:
Version: 17.09.0-ce
API version: 1.32
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:42:45 2017
OS/Arch: linux/amd64
Server:
Version: 17.09.0-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:41:24 2017
OS/Arch: linux/amd64
Experimental: false
和:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de167e404cc3 jiraimage tail -f /dev/null" 6 seconds ago Up 4 seconds 0.0.0.0:8087->8087/tcp mycontainer
3a4a771037ac osixia/phpldapadmin:0.7.1 "/container/tool/run" 6 seconds ago Up 5 seconds 80/tcp, 443/tcp phpldapadmin-service
aa2d78fdcd99 osixia/openldap:1.1.8-001 "/container/tool/run" 7 seconds ago Up 5 seconds 0.0.0.0:389->389/tcp, 0.0.0.0:636->636/tcp, 636/tcp ldap-service
基於以下有關創建用戶定義網絡的答案,我現在有了一個連接:
我首先使用以下方法創建用戶定義的網絡:
docker network create --driver bridge sample-network
並以以下內容啟動我的容器:
docker run --network=sample-network --name ldap-service --hostname ldap-service --detach -p 389:389 -p 636:636 --detach osixia/openldap:1.1.8
docker run --network=sample-network --name phpldapadmin-service --hostname phpldapadmin-service --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin:0.7.1
docker run --network=sample-network -p 0.0.0.0:8087:8087 -d --name mycontainer jiraimage tail -f/dev/null
我必須從LDAP容器中刪除--link ldap-service:ldap-host
,因此phpadmin無法再連接到openldap:
我需要更改以重新啟用該功能?
只需首先定義一個網絡,然后將兩個容器添加到該網絡。
請參閱Docker容器網絡 。
(這將替換過時的舊容器鏈接 )
然后,您可以使用其容器IP地址引用LDAP。
連接到默認網橋網絡的容器可以通過IP地址相互通信。 Docker不支持默認網橋網絡上的自動服務發現。
正如BMitch 在注釋中添加的那樣 ,您應該使用其服務名稱而不是ldap-host
引用ldap:
--env PHPLDAPADMIN_LDAP_HOSTS=ldap-service
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.