如果你之前有使用docker的經驗,你可能已經習慣了使用--link
引數來實現容器互聯。隨著docker網路的完善,強烈建議將docker加入自定義的docker網路來連線多個容器,而不是使用--link
引數
下面建立乙個新的docker網路
root@ubuntu
:~# docker networker create -d bridge my-net
-d
引數指定docker網路型別,有bridge
、overlay
型別,overlay
型別適用於swarm mode,這裡我們使用bridge
執行乙個容器並連線到新建的my-net網路當中:
root@ubuntu:~#
docker
run-it-
-rm--
name
box1--
networkmy-
netbusybox
sh
在執行乙個容器並連線到新建的my-net網路當中:
root@ubuntu:~#
docker
run-it-
-rm--
name
box2--
networkmy-
netbusybox
sh
下面通過ping
命令證明兩個容器建立了互聯關係,在box1
容器中輸入以下命令:
/ # ping box2
ping box2 (172.17
.0.3): 56 data bytes
64 bytes from 172.17
.0.3: seq=0 ttl=64 time=0.714 ms
64 bytes from 172.17
.0.3: seq=1 ttl=64 time=0.125 ms
...
同理,在box2容器中ping box1
也會成功連線到:
/ # ping box1
ping box1 (172.17
.0.2): 56 data bytes
64 bytes from 172.17
.0.2: seq=0 ttl=64 time=0.084 ms
64 bytes from 172.17
.0.2: seq=1 ttl=64 time=0.123 ms
...
如何自定義容器的主機名和dns呢?配置全部容器的dns,可以在/etc/docker/daemon.json
檔案中增加如下內容來設定:
這樣每次啟動的容器dns都會自動配置為114.114.114.114
和8.8.8.8
。使用以下命令來證明其已經生效:
root@ubuntu
:~# docker run -it --rm ubuntu:16.04 cat /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
如果使用者想要手動指定容器的配置,可以在使用docker run
命令的時候新增如下引數:-h hostname
或者--hostname=hostname
設定容器的主機名,它會被寫到容器內的/etc/hostname
和/etc/hosts
。但它不會在容器外部顯示,並且不會在docker ps
中顯示,也不會在容器的/etc/hosts
看到。--dns=ip_address
新增dns伺服器到容器的/etc/resolv.conf
中,讓容器用這個伺服器解析所有不在/etc/hosts
中的主機名。 Docker 網路設定
一 docker 網路預設使用的 bridge 模式 預設生成為 docker0 每個容器使用 veth 對,一頭在容器的網路 namespace 中,一頭在 docker0 上 1 docker 採用的na模式,網路也是隔離獨立的 是將容器服務監聽埠對映到宿主機的ip 埠,然後進行網路資料通訊 外...
設定 docker容器 禁用網路
如果打算完全禁用容器網路棧,可以通過在啟動容器時指定 network none 標誌實現,這樣在容器內部只有loopback網路裝置被建立。命令如下。第二個命令沒有返結果,因為沒有路由被建立。1.建立容器 docker run rm dit network none name no net alpi...
docker學習筆記 容器的網路設定
1.檢查你的系統是不是高於3.8的核心,如果沒有請公升級centos7或者ubuntu 14 uname a 2.centos7下安裝docker yum y install docker 3.檢視docker版本 docker version 4.啟動docker服務 docker service...