坐不住喜单溜 发表于 2023-2-25 11:08:23

云原生Docker容器自定义DNS解析

描述


[*]在特定的情况下,或者在网络策略特殊定义下,需要自定义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
cat /etc/hostshttps://img.jbzj.com/file_images/article/202302/2023022116135637.png

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/
https://img.jbzj.com/file_images/article/202302/2023022116135638.jpg

docker build构建镜像时添加

docker build --add-host=docker:10.180.0.1 .官方文档:https://docs.docker.com/engine/reference/commandline/build/#add-host
https://img.jbzj.com/file_images/article/202302/2023022116135639.png

结尾


[*]如果是单机推荐大家采用docker-compose的方式进行编排【开发测试环境】,生产环境可以采用k8s进行编排。
[*]官方文档:https://kubernetes.io/zh-cn/docs/tasks/network/customize-hosts-file-for-pods/

总结

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

来源:https://www.jb51.net/article/276037.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 云原生Docker容器自定义DNS解析