docker - 用于通信 2 个 docker 容器的 IP 地址是什么?
问题描述
我有 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以获取完整的详细信息
推荐阅读
- xml - 如果匹配文本字符串,则删除子项
- sql - SSDT 架构比较错误:值不能为空。参数名称:标识符组
- applescript - 预期的行尾,但在脚本编辑器中找到标识符
- php - 为什么 xdebug.so 在 no-debug-non-zts 中不存在?
- android - 列表视图内容删除查询使应用程序崩溃
- javascript - 是否可以在另一个 axios 响应中使用 axios 发布请求?
- c - 嵌套包装函数
- sql - 将结果放入一组 2 或我指定的任何数字
- neo4j - 如何通过过滤(Neo4j,Cypher)通过多种关系类型匹配所有可能的路径
- rest - 在 REST GET 请求中传递大量数据