一个Docker容器的/etc/hosts文件被覆盖了。

7
我从CentOS 6.5镜像创建了一个Docker容器。我对/etc/hosts文件进行了一些更改。然后,我提交了该容器并在一个新的容器中启动了新的镜像,但是/etc/hosts文件被覆盖了。有没有办法保留/etc/hosts文件不变?
1个回答

9

不行。 请参见此处的讨论。

Docker根据您给--net选项指定的内容,在/etc/hosts中执行不同的操作。 在默认(桥接)模式下,它会在其中写入容器本身的主机名和IP地址。 没有选项可以将/etc/hosts保留为源镜像中的内容。

您的选项包括:

  • 在运行真正的程序之前,使您的容器在启动时修改/etc/hosts
  • 使用--add-host选项运行容器时向/etc/hosts添加条目。

我可以通过将命令放在~/.bash_profile中来修改容器启动时的操作吗? - user1016313
您可以简单地选择不同的命令,例如 ENTRYPOINT my_wrapper_script,这样就可以进行配置并运行以前的 ENTRYPOINT。但是,只要 ENTRYPOINT 是 shell 脚本,将内容放在 .profile 或类似位置也是有效的。 - Bryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接