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

本節中的信息涵蓋用戶自定義網絡中的容器的內嵌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選項。

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

--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 條目。

過濾是必要的,因為宿主機上的所有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)。

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

注意 :DNS服務器始終為127.0.0.11

參考&拓展閱讀

英文原文

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

本文首發

http://www.itmuch.com/docker/18-docker-user-network-embeded-dns/

干貨分享

全是干貨
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容