修改docker容器内hosts配置的方法

2022/11/07 Docker 共 696 字,约 2 分钟
Bob.Zhu

当docker内使用HBase数据库的时候,由于zookeeper特性,需要在hosts文件内配置host域名映射, 具体问题和解决方案如下。

原理

docker在build过程中修改的hosts文件,会在启动镜像的时候被覆盖掉,导致build过程中所有的修改 都失效了,所以只有在容器启动之后,再进行相关hosts文件的修改,才能保证修改生效。

具体操作

在同一层级目录下:

  • Dockerfile
  • hosts
  • entrypoint.sh

Dockerfile

# 工作目录
WORKDIR /data
# 配置hosts映射-开始
ADD hosts /data/hosts
ADD entrypoint.sh /data/entrypoint.sh
RUN ["chmod","+x","/data/entrypoint.sh"]
# 配置hosts映射-结束
# 启动入口
ENTRYPOINT /data/entrypoint.sh

hosts

192.168.1.176   hadoop1
192.168.1.177   hadoop2
192.168.1.178   hadoop3

entrypoint.sh

#!/bin/sh
# 向hosts文件追加内容
cat /data/hosts >> /etc/hosts;
echo /etc/hosts;

# 启动项目
java -Djava.security.egd=file:/dev/./urandom $jvmConfig -jar $targetFile $springConfig

参考资料

文档信息

Search

    Table of Contents