docker容器的五種網路介紹

2021-10-03 00:04:34 字數 4224 閱讀 8046

容器如果離開了網路,就是乙個密閉的盒子。docker 初期的網路功能並不是很完善,隨著不斷的演化,目前 docker 的網路已經大大加強。

docker自帶的網路:

當docker安裝成功後,就會建立三種網路。

可以使用docker network ls進行檢視:

[root@localhost docker]# docker network ls

network id name driver scope

b4946b871004 bridge bridge local

8937b1719dd3 host host local

cb961b2e8932 none null local

建立容器時可以通過–net指定網路,對於bridge而言,預設是主機掛載在主機的docker0上的。

[root@localhost docker]# ifconfig docker0

docker0: flags=4163mtu 1500

inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255

inet6 fe80::42:bfff:fed8:47ca prefixlen 64 scopeid 0x20ether 02:42:bf:d8:47:ca txqueuelen 0 (ethernet)

rx packets 7230 bytes 75931861 (72.4 mib)

rx errors 0 dropped 0 overruns 0 frame 0

tx packets 8948 bytes 74624356 (71.1 mib)

tx errors 0 dropped 0 overruns 0 carrier 0 collisions 0

檢視某種網路的具體資訊,可以使用docker network inspect net-name。

docker允許使用者自定義的三種網路:

1、橋接,系統預設的橋接是docker0,如果你想將多個容器隔離在乙個新的容器中,可以使用一下命令:

docker network create --drive bridge mybridgenet
然後再建立容器時就可以使用–net將容器掛載到mybridgenet中。

^chost網路:

[root@localhost docker]# docker run -it --name vm1 --net=host busybox

/ # ip a

1: lo: mtu 65536 qdisc noqueue qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: ens33:

mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:0c:29:00:59:1b brd ff:ff:ff:ff:ff:ff

inet 192.168.0.124/24 brd 192.168.0.255 scope global ens33

[root@localhost docker]# docker run -it --name vm1 --net=none busybox

/ # ip a

1: lo: mtu 65536 qdisc noqueue qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

container網路:

[root@localhost docker]# docker run -it --name vm1  busybox sh

/ # ip a

1: lo: mtu 65536 qdisc noqueue qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

34: eth0@if35:

mtu 1500 qdisc noqueue

link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff

inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0

valid_lft forever preferred_lft forever

[root@localhost ~]# docker run -it --name vm2 --net=container:vm1 busybox sh

/ # ip a

1: lo: mtu 65536 qdisc noqueue qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

34: eth0@if35:

mtu 1500 qdisc noqueue

link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff

inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0

valid_lft forever preferred_lft forever

overlay網路請檢視下面四篇文章docker overlay網路跨主機通訊——路由機制打通網路

docker overlay網路跨主機通訊——使用(ovs)打通網路

docker overlay網路跨主機通訊——使用flannel來打通網路

docker overlay網路跨主機通訊——使用quagga來實現自動學習路由

Docker容器網路基礎(五)

1 描述docker0網橋工作原理,以及自定義docker0網橋的ip位址段。2 建立虛擬網橋 docker0虛擬網橋工作原理 docker0虛擬網橋橋接模式工作原理示意圖 檢視橋接模式狀態 1 安裝工具 bridge utils 安裝bridge utils yum y install bridg...

Docker容器介紹

docker基於容器技術的輕量級虛擬化解決方案 docker是容器引擎,把linux的cgroup namespace等容器底層技術進行封裝抽象為使用者提供了建立和管理容器的便捷介面 包括命令列和api docker是乙個開源專案,誕生於2013年初,基於google公司推出的go語言實現 微軟 紅...

Docker容器介紹

假設李四也要安裝微軟的作業系統,那他也要和張三一樣,安裝完作業系統之後,也要安裝常用軟體及驅動,那如果王五,趙六都這樣來,這樣就太麻煩了。這時候就有一種東西叫windows映象系統,什麼叫windows映象系統呢?例如張三把原生系統安裝之後,包括驅動,常用的軟體都安裝之後,把整個一套系統打包成乙個w...