为什么 docker 没有填充 /etc/hosts

为什么 docker 没有填充 /etc/hosts

我在一台主机上有两个 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 来允许容器相互找到。

你没有做错任何事(这一点大家都看得出来 ;-) )。

相关内容