1.进入容器内部修改host文件(不推荐,重启容器会失效)

#进入容器
sudo docker exec -it 容器id /bin/sh
#修改容器内的host文件
vi /etc/hosts
#添加要加的内容到末尾
192.168.1.111  www.baidu.com
#保存退出

2.docker run命令添加参数

  • 使用--add-host参数
docker run -it --name my-alpine --add-host=www.baidu.com:192.168.1.111 docker.io/alpine

3.修改Dockfile文件

  • 添加启动脚本
RUN mkdir /data
COPY run.sh /data/
RUN chmod +x /data/run.sh
ENTRYPOINT /bin/sh -c /data/run.sh

run.sh的内容如下:

#向hosts文件追加内容
echo "192.168.1.111  www.baidu.com"  >> /etc/hosts
......
#保留终端,防止容器自动退出
/bin/sh

4.docker-compose中添加参数

  • 使用extra_hosts可以在启动容器的过程中,把如下对的配置加入容器的host文件中
extra_hosts:
  - "somehost:162.242.195.82"
  - "otherhost:50.31.209.229"
  • 整体配置如下,和image同级
 	......
    external_links:
      - mysql:mysql
      - redis:redis
      - nacos:nacos
    networks:
      - dev-net
    extra_hosts:
      - "www.baidu.com:192.168.1.111"
	  ......
  • 官网描述
    image-20210121104648032