我在一台主机上有两个 docker 容器。它们都位于默认网络中,但启动后bridge
会连接到用户定义的网络。monitoring
我可以通过以下方式看到它成功了docker inspect ...
:
其中之一(缩写):
"Networks": {
"bridge": {
"Links": null,
"Aliases": null,
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
...
},
"monitoring": {
"Links": null,
"Aliases": [
"certmon.web",
"93a4010aca97.certmon.web",
"93a4010aca97"
],
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.2",
...
}
}
另一个有:
"Networks": {
"bridge": {
"Links": null,
"Aliases": null,
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.5",
...
},
"monitoring": {
"Links": null,
"Aliases": [
"influxdb.web",
"32c95fdebbd9.influxdb.web",
"32c95fdebbd9"
],
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.3",
...
}
}
我希望网络中定义的别名monitoring
能够自动注入到/etc/hosts
每个容器中 - 但这并没有发生。
通过 IP 连接“可以正常工作”,因此它肯定是同一个网络/两个容器都正确连接。
我究竟做错了什么?
答案1
Docker 似乎无法通过文件解析主机名,它有自己的内置 DNS 来允许容器相互找到。
你没有做错任何事(这一点大家都看得出来 ;-) )。