docker自定义容器hosts内容
一、通过docker启动命令修改容器hosts
一般正式环境的镜像都是提前编译好的,如果不是采取docker-compose编译的镜像,很难修改host,所以我们只能在启动的时候通过参数配置。
使用命令参数指定--add-host
docker run \ --add-host=tdengine:192.168.10.101 \ --name manage-srv -itd devops.ops.com/devops/manage-srv:20230312
二、在docker-compose.yml修改hosts
在yml中指定,编译的docker容器自动配置host文件,yaml相关内容如下
services: service-manage-srv: image: manage-srv extra_hosts: - "tdengine:192.168.10.101"
三、在dockerfile中修改hosts
在dockerfile中修改hosts,封装成业务所需的镜像
替换hosts文件:dockerfile没有直接的参数可以直接修改host文件,如果想通过dockerfile修改host文件,需要事先准备好host文件放在你的代码根目录下
# 整个hosts替换 RUN cat /devops/hosts >> /etc/hosts 在原有的hosts文件上追加: RUN echo '192.168.10.101 tdengine' >> /etc/hosts
四、使用sh脚本结合dockerfile优化方法
在dockerfile同目录添加执行脚本:hosts.sh 复制代码 #!/bin/bash set -x echo 'Starting....' # 在容器的hosts文件中追加 echo '192.168.10.101 tdengine' >> /etc/hosts java -jar /tmp/app.jar 修改dockerfile文件,改成下面的内容 COPY hosts.sh /tmp/hosts.sh RUN chmod +x /tmp/hosts.sh ENTRYPOINT [ "sh", "/tmp/hosts.sh" ] 这种方式就是容器启动之后,将服务初始化命令改成脚本,在脚本中添加修改hosts文件的相关指令。