说明:编写dockerfile时,如在 文件中 直接操作修改 /etc/hosts 文件,会发现,在生成镜像后,启动容器时,会发现 hosts中的没有 dockerfile 中编写修改 的内容。

原因:Docker在启动容器时创建 /etc/hosts 文件.这就是为什么我的 /etc/hosts 文件的修改被覆盖了.

解决方式一:

不在 dockerfile 中设置 hosts

在启动 docker 时 使用如下语法 添加hosts内容

--add-host=www.baidu.com:127.0.0.1

解决方式二:

通过ENTRYPOINT命令动态更改主机文件

两种格式:

ENTRYPOINT ["executable", "param1", "param2"]

ENTRYPOINT command param1 param2(shell中执行)

配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。

每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。

作者:admin  创建时间:2022-11-24 10:41
最后编辑:joker.liu  更新时间:2023-04-23 14:39