docker - 无法从另一个容器“错误地址”ping 容器
问题描述
我有一些容器的堆栈。其他人无法通过他的主机名访问其中一个,这似乎是一个 IP 地址问题。
码头工人网络检查我的堆栈
"Name": "mystack_default",
"Id": "k9tanhwcyv42473ehsehqhqp7",
"Created": "2019-08-22T16:10:45.097992076+02:00",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.0.2.0/24",
"Gateway": "10.0.2.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"5d8e4b8cba8889036a869a280d5996f104f250677b8c962dc45ba72441e1840d": {
"Name": "mystack_api.1.t4oax9f5uyw0237h2ysgwrzxq",
"EndpointID": "34037c244f828e035c54b5ef3f21f020cf046218b39ffc2835dd4156f3d2b688",
"MacAddress": "02:42:0a:00:02:23",
"IPv4Address": "10.0.2.35/24",
"IPv6Address": ""
},
"49f6a8444475fdcea2f96bdb7fbc62b908b5cd83175c3068a675761e64500e0e": {
"Name": "mystack_webview.1.biby87oba9z3awkb3n4439yho",
"EndpointID": "d9c0551a0213e38651c352970d5970b3f80b067676b3fb959845e139b7261c1a",
"MacAddress": "02:42:0a:00:02:20",
"IPv4Address": "10.0.2.32/24",
"IPv6Address": ""
},
},
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4099"
},
"Labels": {
"com.docker.stack.namespace": "mystack"
},
"Peers": [
{
"Name": "1b4f79e8e881",
"IP": "192.168.1.67"
}
]
api 服务可以使用主机名 ping webview 服务,但这不是我的 webview 服务的好 ip:
# ping webview
PING webview (10.0.2.17) 56(84) bytes of data. // NOT THE GOOD IP ! (it should be 10.0.2.32)
64 bytes from 10.0.2.17 (10.0.2.17): icmp_seq=1 ttl=64 time=0.126 ms
64 bytes from 10.0.2.17 (10.0.2.17): icmp_seq=2 ttl=64 time=0.099 ms
webview 无法使用主机名 ping api 服务(错误地址错误),但它适用于我的服务的 ip 地址:
/app # ping 10.0.2.35
PING 10.0.2.35 (10.0.2.35): 56 data bytes
64 bytes from 10.0.2.35: seq=0 ttl=64 time=0.331 ms
64 bytes from 10.0.2.35: seq=1 ttl=64 time=0.140 ms
^C
--- 10.0.2.35 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.140/0.235/0.331 ms
/app # ping api
ping: bad address 'api'
docker网络有问题,但我不知道如何解决。我已经卸载并重新安装了 docker,删除了 docker eth 条目......知道吗?非常感谢您的帮助 !
解决方案
推荐阅读
- javascript - 如何在 ReactJS 中的 2 个类之间传递数据
- python - 带错误报告的二进制到十进制计算器
- javascript - 在 Jest/Testing Library 测试套件中意外的 afterAll 执行
- oauth-2.0 - 如何使用用户 Api 密钥调用 youtube Api
- django - 如何在 Django/Mysql 中建立一对多关系?
- android - 我们是否开始在本地为 firebase 编写云函数?
- json - JSON格式spring boot的结果列表
- c# - 使用 WPF 和 MVVM 制作 NewGame 按钮
- java - 在从 servlet 过滤器输出消息后,如何从类中获取 JSP 输出消息?
- shell - awk:如何从查找文件中获取整个字符串