溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

docker如何使用網(wǎng)橋

發(fā)布時間:2021-12-14 11:52:48 來源:億速云 閱讀:131 作者:iii 欄目:建站服務(wù)器

這篇文章主要介紹“docker如何使用網(wǎng)橋”,在日常操作中,相信很多人在docker如何使用網(wǎng)橋問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”docker如何使用網(wǎng)橋”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

docker引擎會默認(rèn)創(chuàng)建一個docker0網(wǎng)橋,它在內(nèi)核層連通了其他的物理或虛擬網(wǎng)卡,這就將所有容器和宿主機(jī)都放到同一個二層網(wǎng)絡(luò)。

1. docker如何使用網(wǎng)橋

1.1 Linux虛擬網(wǎng)橋的特點(diǎn)

網(wǎng)橋工作在二層(OSI堆棧),是通用網(wǎng)絡(luò)設(shè)備的一種,可以設(shè)置IP地址。有了IP地址,Linux便可通過路由表或IP表,在網(wǎng)絡(luò)層定位網(wǎng)橋,這就相當(dāng)于有了一個虛擬網(wǎng)卡,即docker0。docker0默認(rèn)的地址劃分:

IP: 127.17.42.1/16

MAC : 02:42:ac:11:00:00 到 02:42:ac:11:ff:ff,共65534個地址

1.2 docker0網(wǎng)橋連接方式

 docker如何使用網(wǎng)橋

網(wǎng)絡(luò)配置過程如下:

a. 在宿主機(jī)上創(chuàng)建一對虛擬網(wǎng)卡veth pair設(shè)備。veth設(shè)備總是成對出現(xiàn)的,它們組成了一個數(shù)據(jù)的通道,數(shù)據(jù)從一個設(shè)備進(jìn)入,就會從另一個設(shè)備出來。因此,veth設(shè)備常用來連接兩個網(wǎng)絡(luò)設(shè)備。

b. 在容器啟動時,Docker引擎將veth pair設(shè)備的一端放在新創(chuàng)建的容器中,并命名為eth0。另一端放在宿主機(jī)中,以veth***這樣類似的名字命名,并將這個網(wǎng)絡(luò)設(shè)備加入到docker0網(wǎng)橋中,可以通過brctl show命令查看。

c. 從docker0子網(wǎng)中分配一個IP給容器使用,并設(shè)置docker0的IP地址為容器的默認(rèn)網(wǎng)關(guān)。

2. docker0網(wǎng)橋?qū)崿F(xiàn)方式

2.1 查看docker0網(wǎng)橋

# yum install bridge-utils

// 查看主機(jī)網(wǎng)橋信息
# brctl show

// 查看容器網(wǎng)卡信息
# docker run -d --name test locutus1/centos /bin/bash

cID#ifconfig 
ctrl+p ; ctrl+q

// 在主機(jī)中查看,docker0開放的網(wǎng)絡(luò)接口veth
# brctl show

# ifconfig 

2.2 修改docker0網(wǎng)段

# ifconfig docker0 192.168.1.10/24 up

// 驗證docker0更改為目標(biāo)網(wǎng)段
# ifconfig docker0

# service docker restart

// 查看容器網(wǎng)絡(luò)接口,驗證是否更改為docker0網(wǎng)段 
# docker run -d --name test locutus1/centos /bin/bash

cID#ifconfig 

2.3 自定義linux虛擬網(wǎng)橋br0

// 新增網(wǎng)橋br0 
# brctl addbr br0

# ifconfig br0 172.17.0.0/24 up

// 修改docker啟動配置文件(centos下,docker啟動配置文件路徑是/etc/sysconfig/docker),添加DOCKER_OPTS值,使docker啟用新添加的網(wǎng)橋br0 
# vim /etc/sysconfig/docker

DOCKER_OPTS="-b=br0"

// 修改docker守護(hù)進(jìn)程配置文件,添加EnvironmentFile絕對路徑與啟動項$DOCKER_OPTS,其中“ - ”代表ignore error 
# vim /lib/systemd/system/docker.service

EnvironmentFile=-/etc/sysconfig/docker 
ExecStart=/usr/bin/dockerd $DOCKER_OPTS

// 重啟所有守護(hù)進(jìn)程。重新裝載所有守護(hù)進(jìn)程的unit文件,然后重新生成依賴關(guān)系樹
# systemctl daemon-reload

# service docker restart

// 查看容器IP,驗證其更改為br0網(wǎng)段 
# docker run -it --name test2 centos /bin/bash

cID# yum install -y net-tools.x86_64 
cID# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:acff:fe11:2 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 1188 bytes 7830677 (7.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1073 bytes 73229 (71.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

到此,關(guān)于“docker如何使用網(wǎng)橋”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI