描述
- 在特定的情况下,或者在网络策略特殊定义下,需要自定义dns进行域名访问,在宿主机上配置了域名解析,对于docker容器无效。
- 对于局域网内的域名解析,Docker 需要到 Docker 容器中配置 hosts 文件。
实现方式
docker-compose配置【推荐】
通过增加 extra_hosts 属性 进行host配置
- version: '2'
- services:
- # 指定服务名称
- portainer-docker-compose:
- image: portainer/portainer
- container_name: portainer
- volumes:
- - /etc/localtime:/etc/localtime
- ports:
- - 29999:8080
- environment:
- spring.profiles.active: dev
- extra_hosts:
- s3-qos.qiniu-solutions.com: 10.12.32.4
- demos.s3-qos.iot-st-armtest.qiniu-solutions.com: 10.12.32.4
- restart: always
进入容器内部修改
进入容器
- docker exec -it 0485008fc3e5 /bin/sh
修改容器内的hosts

docker run 命令的时候添加
进行dns映射:s3-qos.qiniu-solutions.com:10.12.32.4
- docker run -d -p 9000:9000 --restart=always --add-host s3-qos.qiniu-solutions.com:10.12.32.4 -v /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer
官方文档:https://docs.docker.com/engine/reference/commandline/run/

docker build构建镜像时添加
- docker build --add-host=docker:10.180.0.1 .
官方文档:https://docs.docker.com/engine/reference/commandline/build/#add-host

结尾
总结
到此这篇关于云原生Docker容器自定义DNS的文章就介绍到这了,更多相关docker容器自定义DNS内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!