1、修改dockerfile文件方式:不可行

2、修改docker -build命令方式:不可行

我感觉上面两种方式不可行的原因是相同的,因为容器启动的时候,hosts文件会新生成,并不会继承镜像中的hosts文件,所以这两种方式,不管咋搞都是不可行的

3、修改docker -run命令:未测试。

我感觉这种方式是可行的,在启动容器的时候指定hosts文件内容,但是我们用k8s管理容器,所以不会用到该命令,这种方式对于我们也是不可行的

4、修改启动命令为启动脚本:可行

这种方式是我试验后唯一一种可以自动修改hosts文件的方式。具体操作如下:

添加执行脚本:entrypoint.sh

#!/bin/bash
set -x
echo 'Starting....'

echo '****** ******' >> /etc/hosts

java -jar /tmp/app.jar

修改dockerfile文件,改成下面的内容

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT [ "sh", "entrypoint.sh" ]

这种方式就是容器启动之后,将服务初始化命令改成脚本,在脚本中添加修改hosts文件的相关指令

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐