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文件的相关指令。

 

posted @ 2023-03-12 17:47  思维无界限  阅读(1088)  评论(0编辑  收藏  举报