啟動的時候加–dns=ip_address;
守護程序啟動引數中新增docker_opts="–dns 8.8.8.8" ;
在/etc/docker/deamon.json中新增dns資訊(與守護程序引數會衝突不能同時新增。);
使用宿主機的/etc/resolv.conf檔案;
怎樣為docker提供的每乙個容器進行主機名和dns配置,而不必建立自定義映象並將主機名寫 到裡面?它的訣竅是覆蓋三個至關重要的在/etc下的容器內的虛擬檔案,那幾個檔案可以寫入 新的資訊。你可以在容器內部執行mount看到這個:
$ mount
.../dev/disk/by-uuid/1fec...ebdf on /etc/hostname type ext4 ...
/dev/disk/by-uuid/1fec...ebdf on /etc/hosts type ext4 ...
/dev/disk/by-uuid/1fec...ebdf on /etc/resolv.conf type ext4 ...
...
options
description
-h hostname or --hostname=hostname
在該容器啟動時,將hostname設定到容器內的/etc/hosts, /etc/hostname, /bin/bash提示中。
–link=container_name or id:alias
在該容器啟動時,將alias和container_name/id對應的容器ip新增到/etc/hosts. 如果 container_name/id有多個ip位址 ?
–dns=ip_address…
在該容器啟動時,將nameserver ip_address新增到容器內的/etc/resolv.conf中。可以配置多個。
–dns-search=domain…
在該容器啟動時,將domain新增到容器內/etc/resolv.conf的dns search列表中。可以配置多個。
–dns-opt=option…
在該容器啟動時,將option新增到容器內/etc/resolv.conf中的options選項中,可以配置多個
如果docker run時不含--dns=ip_address
…,--dns-search=domain
…, or--dns-opt=option
…引數,docker daemon會將copy本主機的/etc/resolv.conf
,然後對該copy進行處理(將那些/etc/resolv.conf中ping不通的nameserver項給拋棄),處理完成後留下的部分就作為該容器內部的/etc/resolv.conf。因此,如果你想利用宿主機中的/etc/resolv.conf配置的nameserver進行網域名稱解析,那麼你需要宿主機中該dns service配置乙個宿主機內容器能ping通的ip。
如果宿主機的/etc/resolv.conf內容發生改變,docker daemon有乙個對應的file change notifier會watch到這一變化,然後根據容器狀態採取對應的措施:
注意: docker daemon監控宿主機/etc/resolv.conf的這個file change notifier的實現是依賴linux核心的inotify特性,而inotfy特性不相容overlay fs,因此使用overlay fs driver的docker deamon將無法使用該/etc/resolv.conf自動更新的功能。、
$ sudo docker run --hostname 'myhost' -it centos
[root@myhost /]
# cat /etc/hosts
172.17.0.7 myhost
$ sudo docker run -it --dns=192.168.5.1 centos
[root@6a38049c9052 /]
# cat /etc/resolv.conf
nameserver 192.168.5.1
$ sudo docker run -it --dns-search=www.domain.com centos
[root@ae0e9e99596f /]
# cat /etc/resolv.conf
nameserver 192.168.4.1
search www.mydomain.com
root@node-7:~# cat /etc/docker/daemon.json
參考連線:
docker高階網路配置
docker container dns配置介紹和原始碼分析
docker網路配置
檢視docker網路 docker network ls 檢視bridge 的ip docker inspect id 啟動乙個映象名字為aaa 設定網路host 網路預設為 bridge docker run itd name bbb centos bash host 網路ip和虛擬機器一樣 我們...
Docker網路配置
1 在沒有任何docker容器啟動時的原始宿主機網路如下 1.回環 2.物理網絡卡 3.4虛擬機器的 5.docker的網絡卡 2 啟動tomcat容器 docker run d p name tomcat test tomcat p是隨機埠 檢視當前已經有乙個啟動中的容器,是我們制定的tomcat...
Docker 網路配置
docker 為我們提供了多種型別的網路模式,我們可以根據自己的需求使用系統預設的網路或者建立自己的網路。在我們安裝完 docker enginee 後,會自動生成3種預設的網路模式。我們可以執行命令檢視 bridge 使用docker 0 網路,containers只能在乙個host上面進行通訊。...