Docker 網路設定

2021-08-24 18:01:28 字數 2103 閱讀 2839

如果你之前有使用docker的經驗,你可能已經習慣了使用--link引數來實現容器互聯。隨著docker網路的完善,強烈建議將docker加入自定義的docker網路來連線多個容器,而不是使用--link引數

下面建立乙個新的docker網路

root@ubuntu

:~# docker networker create -d bridge my-net

-d引數指定docker網路型別,有bridgeoverlay型別,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.1148.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...