原文: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服務器,它爲任何使用有效name
、net-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.conf
( docker 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.11
。blog
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