Docker:容器是否从Docker主机继承/ etc / hosts?

时间:2018-10-22 02:17:02

标签: docker docker-compose

如果我有一台运行docker(docker主机)并在此docker主机内启动一些容器的机器,

我需要容器的服务能够互相通信-容器暴露端口,并且它们还需要按主机名解析(例如:example.com)

container A needs to talk to container B with URL: example.com:3000

我已经阅读了这篇文章,但不太了解doker主机的“继承性”,是否将docker主机的/ etc / hosts追加到在docker主机内部运行的容器的/ etc / hosts中?

https://docs.docker.com/engine/reference/run/#managing-etchosts

如何实现?

此“继承”是否与type of docker container networking https://docs.docker.com/v17.09/engine/userguide/networking/有任何联系?

1 个答案:

答案 0 :(得分:1)

它不继承主机的/etc/hosts文件。当在docker-compose中使用--add-host参数或extra_hosts时,docker会更新容器中的文件。您可以在docker-compose(https://docs.docker.com/compose/compose-file/#extra_hosts)中使用extra_hosts添加单个记录。

尽管如果您只是想让2个容器相互通信,您也可以将它们连接到同一网络。在docker-compose中,您可以创建所谓的外部网络,并使所有docker-compose文件都引用它。然后,您将可以使用完整的Docker容器名称(例如http://project_app_1:3000)进行连接。

请参见https://docs.docker.com/compose/compose-file/#external