首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker容器之间的通信

docker容器之间的通信
EN

Stack Overflow用户
提问于 2017-08-05 19:53:29
回答 1查看 601关注 0票数 2

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

一个docker容器是web服务器,另一个是selenium-chromedriver。

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

web服务器的启动方式如下:

代码语言:javascript
复制
docker run -i -p 80:80 -d '<name>:<version>' /sbin/my_init

selenium驱动程序的启动方式如下:

代码语言:javascript
复制
docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.4.0

在主机上,我可以使用curl从selenium容器获取信息:

代码语言:javascript
复制
curl http://localhost:4444/wd/hub/status
# => {"state":"success","sessionId":..........

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

代码语言:javascript
复制
curl: (7) Failed to connect to localhost port 4444: Connection refused

如何才能让包含web服务器的容器能够连接到另一个容器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-05 20:13:27

我认为你必须创建网络:docker.com work with networks help

容器组网基本示例:

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

代码语言:javascript
复制
$ docker run -itd --name=container1 busybox

18c062ef45ac0c026ee48a83afa39d25635ee5f02b58de4abc8f467bcaa28731

$ docker run -itd --name=container2 busybox

498eaaaf328e1018042c04b2de04036fc04719a6e39a097a4f4866043a2c2152

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

代码语言:javascript
复制
$ docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw

06a62f1c73c4e3107c0f555b7a5f163309827bfbbf999840166065a8f35455a8

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

代码语言:javascript
复制
$ 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地址。由于您在创建网络时指定了--子网,因此IP地址是从该子网中选择的。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45521591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档