我有一个运行两个docker容器的服务器。
一个docker容器是web服务器,另一个是selenium-chromedriver。
从带有web服务器的容器中,我希望能够连接到chrome驱动程序。
web服务器的启动方式如下:
docker run -i -p 80:80 -d '<name>:<version>' /sbin/my_initselenium驱动程序的启动方式如下:
docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:3.4.0在主机上,我可以使用curl从selenium容器获取信息:
curl http://localhost:4444/wd/hub/status
# => {"state":"success","sessionId":..........但是,从web服务器容器中,我只能得到:
curl: (7) Failed to connect to localhost port 4444: Connection refused如何才能让包含web服务器的容器能够连接到另一个容器?
发布于 2017-08-05 20:13:27
我认为你必须创建网络:docker.com work with networks help
容器组网基本示例:
首先,创建并运行两个容器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地址。由于您在创建网络时指定了--子网,因此IP地址是从该子网中选择的。
提醒一下,container1仅连接到默认网桥网络。
https://stackoverflow.com/questions/45521591
复制相似问题