繁体   English   中英

在Docker容器之间进行通信

[英]Communicate between docker containers

我有一台运行两个Docker容器的服务器。

一个泊坞窗容器是一个Web服务器,另一个是selenium-chromedriver。

从Web服务器的容器中,我希望能够连接到chrome驱动程序。

Web服务器启动如下:

docker run -i -p 80:80 -d '<name>:<version>' /sbin/my_init

硒驱动程序是这样启动的:

docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.4.0

我可以从主机上通过curl从硒容器中获取信息:

curl http://localhost:4444/wd/hub/status
# => {"state":"success","sessionId":..........

但是,从Web服务器容器中我只能得到:

curl: (7) Failed to connect to localhost port 4444: Connection refused

如何使包含Web服务器的容器能够连接到另一个容器?

我认为您必须创建网络: docker.com与网络帮助一起使用

基本容器联网示例:

首先,创建并运行两个容器,container1和container2:

$ docker run -itd --name=container1 busybox

18c062ef45ac0c026ee48a83afa39d25635ee5f02b58de4abc8f467bcaa28731

$ docker run -itd --name=container2 busybox

498eaaaf328e1018042c04b2de04036fc04719a6e39a097a4f4866043a2c2152

创建一个隔离的桥接网络进行测试。

$ docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw

06a62f1c73c4e3107c0f555b7a5f163309827bfbbf999840166065a8f35455a8

将container2连接到网络,然后检查网络以验证连接:

$ docker network connect isolated_nw container2

$ docker network inspect isolated_nw

[
    {
        "Name": "isolated_nw",
        "Id": "06a62f1c73c4e3107c0f555b7a5f163309827bfbbf999840166065a8f35455a8",
        "Scope": "local",
        "Driver": "bridge",
        "IPAM": {
            "Driver": "default",
            "Config": [
                {
                    "Subnet": "172.25.0.0/16",
                    "Gateway": "172.25.0.1/16"
                }
            ]
        },
        "Containers": {
            "90e1f3ec71caf82ae776a827e0712a68a110a3f175954e5bd4222fd142ac9428": {
                "Name": "container2",
                "EndpointID": "11cedac1810e864d6b1589d92da12af66203879ab89f4ccd8c8fdaa9b1c48b1d",
                "MacAddress": "02:42:ac:19:00:02",
                "IPv4Address": "172.25.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {}
    }
]

请注意,container2已自动分配了一个IP地址。 因为在创建网络时指定了--subnet,所以从该子网中选择了IP地址。

提醒一下,container1仅连接到默认网桥网络。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM