我有 2 个 docker 容器,它们使用 docker 网络连接。我运行以下命令两次。
docker network connect [network id] [container id]
第一个容器需要通过 HTTP 与第二个容器通信。
我设置的ip是172.17.0.1,但是好像ip不对。
我相信这是那些有经验的 docker 用户的常见问题。
谁能帮帮我?
问候, 吉米
最佳答案
可能是容器没有连接到网络。为了检查您是否可以检查容器连接到的网络,以便它们可以通信。
使用命令 docker network inspect network_name
如果网络是默认网桥,您可以在容器附加到它之前看到以下 o/p:
[
{
"Name": "bridge",
"Id": "f7ab26d71dbd6f557852c7156ae0574bbf62c42f539b50c8ebde0f728a253b6f",
"Scope": "local",
"Driver": "bridge",
"IPAM": {
"Driver": "default",
"Config": [
{
"Subnet": "172.17.0.1/16",
"Gateway": "172.17.0.1"
}
]
},
"Containers": {},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "9001"
},
"Labels": {}
}
]
一旦连接了两个容器,那么 o/p 将如下所示:
{[
{
"Name": "bridge",
"Id": "f7ab26d71dbd6f557852c7156ae0574bbf62c42f539b50c8ebde0f728a253b6f",
"Scope": "local",
"Driver": "bridge",
"IPAM": {
"Driver": "default",
"Config": [
{
"Subnet": "172.17.0.1/16",
"Gateway": "172.17.0.1"
}
]
},
"Containers": {
"3386a527aa08b37ea9232cbcace2d2458d49f44bb05a6b775fba7ddd40d8f92c": {
"EndpointID": "647c12443e91faf0fd508b6edfe59c30b642abb60dfab890b4bdccee38750bc1",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
"94447ca479852d29aeddca75c28f7104df3c3196d7b6d83061879e339946805c": {
"EndpointID": "b047d090f446ac49747d3c37d63e4307be745876db7f0ceef7b311cbba615f48",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "9001"
},
"Labels": {}
}
]
如您所见,o/p 中有两个容器的 ip 地址。
现在您可以附加到一个容器并尝试 ping 另一个容器以查看它们是否可以通信。
可以关注docker doc完整的细节
关于docker - 用于通信 2 个 docker 容器的 ip 地址是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55508084/