Docker系列教程18-用戶定義網絡中的內嵌DNS服務器

原文:http://www.itmuch.com/docker/18-docker-user-network-embeded-dns/ ,轉載請說明出處。docker

本節中的信息涵蓋用戶自定義網絡中的容器的內嵌DNS服務器操做。鏈接到用戶自定義網絡的容器的DNS lookup與鏈接到默認bridge 網絡的容器的工做機制不一樣。服務器

注意 :爲了保持向後兼容性, 默認 bridge 網絡的DNS配置保持不變, 有關默認網橋中DNS配置的詳細信息,請參閱默認網橋中的DNS網絡

從Docker 1.10開始,Docker daemon實現了一個內嵌的DNS服務器,它爲任何使用有效namenet-alias 或使用link 別名所建立的容器提供內置的服務發現能力。 Docker如何管理容器內DNS配置的具體細節可隨着Docker版本的改變而改變。 因此你不該該本身管理容器內的/etc/hosts/etc/resolv.conf 等文件,而是使用如下的Docker選項。ide

影響容器域名服務的各類容器選項。ui

--name=CONTAINER-NAME 使用--name 配置的容器名稱用於發現用戶自定義網絡中的容器。 內嵌DNS服務器維護容器名稱及其IP地址(在容器鏈接的網絡上)之間的映射。
--network-alias=ALIAS 除如上所述的--name 之外,容器可以使用用戶自定義網絡中的一個或多個--network-alias (或docker network connect 命令中的--alias 選項)發現。 內嵌DNS服務器維護特定用戶自定義網絡中全部容器別名及IP之間的映射。 經過在 docker network connect 命令中使用--alias 選項,容器可在不一樣的網絡中具備不一樣的別名。
--link=CONTAINER_NAME:ALIAS run 容器時使用此選項爲嵌入式DNS提供了一個名爲ALIAS 的額外條目,指向由CONTAINER_NAME 標識的IP地址。 當使用--link 時,嵌入式DNS將確保只在使用了--link 選項的容器上進行本地化查找。 這容許新容器內的進程鏈接到容器,而沒必要知道其名稱或IP。
--dns=[IP_ADDRESS...] 若是嵌入式DNS服務器沒法從容器中解析名稱、解析請求,嵌入式DNS服務器將使用--dns 選項傳遞的IP地址轉發DNS查詢。 這些--dns IP地址由嵌入式DNS服務器管理,不會在容器的/etc/resolv.conf 文件中更新。
--dns-search=DOMAIN... 當容器內使用主機名不合格時所設置的域名。這些--dns-search 選項由嵌入式DNS服務器管理,不會在容器的/etc/resolv.conf 文件中更新。當容器進程嘗試訪問host 而且搜索域 example.com被設置時,例如,DNS邏輯不只將查找host ,還將查找host.example.com
--dns-opt=OPTION... 設置DNS解析器使用的選項。 這些選項由嵌入式DNS服務器管理,不會在容器的/etc/resolv.conf 文件中更新。有關有效選項的列表,請參閱resolv.conf文檔。

在沒有--dns=IP_ADDRESS...--dns-search=DOMAIN...--dns-opt=OPTION... 選項的狀況下,Docker使用宿主機的/etc/resolv.confdocker daemon 運行的地方)。 在執行此操做時,damon會從宿主機的原始文件中過濾出全部localhost IP地址nameserver 條目。.net

過濾是必要的,由於宿主機上的全部localhost地址都不可從容器的網絡中訪問。過濾以後,若是容器的/etc/resolv.conf 文件中沒有更多的nameserver 條目,daemon會將公共Google DNS名稱服務器(8.8.8.8和8.8.4.4)添加到容器的DNS配置中。 若是daemon啓用了IPv6,則也會添加公共IPv6 Google DNS名稱服務器(2001:4860:4860::8888 以及 2001:4860:4860::8844)。code

注意 :若是您須要訪問宿主機的localhost解析器,則必須修改宿主機上的DNS服務,以便偵遵從容器內可訪問的non-localhost地址。server

注意 :DNS服務器始終爲127.0.0.11blog

原文

https://docs.docker.com/engine/userguide/networking/configure-dns/dns

參考&拓展閱讀

Docker內置DNS:https://jimmysong.io/blogs/docker-embedded-dns/

Dns: http://blog.csdn.net/waltonwang/article/details/54098592

相關文章
相關標籤/搜索