雲原生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/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-compose的方式進行編排【開發測試環境】,生產環境可以采用k8s進行編排。
  • 官方文檔:https://kubernetes.io/zh-cn/docs/tasks/network/customize-hosts-file-for-pods/

總結 

到此這篇關於雲原生Docker容器自定義DNS的文章就介紹到這瞭,更多相關docker容器自定義DNS內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: