1. 程式人生 > >031、none和host網絡的適用場景(2019-02-18 周一)

031、none和host網絡的適用場景(2019-02-18 周一)

fault ont rgba ifconfig ace 多個 scope 除了 cast

參考https://www.cnblogs.com/CloudMan6/p/7053617.html 本節開始,會學習docker的幾種原生網絡,以及如何創建自定義網絡。然後探究容器之間如何通信,以及容器與外界如何交互 docker網絡從覆蓋範圍可以分為單個host上的容器網絡和跨多個host的網絡,本章終點學習前一種。對於更復雜的多host網絡,將在後面的進階部分學習。 docker安裝時會自動在host上創建三個網絡,我們可以用docker network ls 命令查看 root@docker-lab:~# docker network ls NETWORK ID NAME DRIVER SCOPE b41bf72cd691 bridge
bridge local
e5cb8d603efd host host local f9dc6032baba none null local none網絡 none網絡就是什麽網絡都沒有,掛載這個網絡下的容器除了lo以外,沒有其他網卡。容器創建時,可以通過 --network=none 指定容器使用none網絡。 root@docker-lab:~# docker run -it --network=none busybox
/ # ifconfig -a lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) / # 一個封閉的網絡有什麽用呢,封閉即隔離,一些對安全性要求較高並且不需要聯網的應用可以使用none網絡,比如專門用來生成隨機密碼的容器。 host網絡
連接到host網絡的容器共享docker host的網絡棧,容器的網絡配置與docker host完全一樣。可以通過 --network=host 指定容器使用host網絡 root@docker-lab:~# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:02:7e:68 brd ff:ff:ff:ff:ff:ff 3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 52:54:01:02:27:95 brd ff:ff:ff:ff:ff:ff 4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:0e:6c:b4:04 brd ff:ff:ff:ff:ff:ff root@docker-lab:~# docker run -it --network=host busybox / # ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 52:54:00:02:7e:68 brd ff:ff:ff:ff:ff:ff 3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 52:54:01:02:27:95 brd ff:ff:ff:ff:ff:ff 4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue link/ether 02:42:0e:6c:b4:04 brd ff:ff:ff:ff:ff:ff / # / # hostname docker-lab 可以看到host網絡的容器,使用的網絡以及hostname都和docker host一樣 直接使用host網絡最大的好處就是性能,如果容器對網絡傳輸效率要求比較高,則可以選擇host網絡。 缺點是靈活性差,容器和docker host公用一套端口,需要解決端口沖突的問題。 host網絡的另一個用途是讓容器可以直接配置docker host網絡,比如某些跨docker host的網絡解決方案,其本身也是以容器方式運行,這些方案需要對網絡進行配置,比如管理iptables,後面的章節會做詳細介紹

031、none和host網絡的適用場景(2019-02-18 周一)