共計(jì) 2116 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。
這篇文章主要介紹“docker 如何使用網(wǎng)橋”,在日常操作中,相信很多人在 docker 如何使用網(wǎng)橋問(wèn)題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”docker 如何使用網(wǎng)橋”的疑惑有所幫助!接下來(lái),請(qǐng)跟著丸趣 TV 小編一起來(lái)學(xué)習(xí)吧!
docker 引擎會(huì)默認(rèn)創(chuàng)建一個(gè) docker0 網(wǎng)橋,它在內(nèi)核層連通了其他的物理或虛擬網(wǎng)卡,這就將所有容器和宿主機(jī)都放到同一個(gè)二層網(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 便可通過(guò)路由表或 IP 表,在網(wǎng)絡(luò)層定位網(wǎng)橋,這就相當(dāng)于有了一個(gè)虛擬網(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 個(gè)地址
1.2 docker0 網(wǎng)橋連接方式
網(wǎng)絡(luò)配置過(guò)程如下:
a. 在宿主機(jī)上創(chuàng)建一對(duì)虛擬網(wǎng)卡 veth pair 設(shè)備。veth 設(shè)備總是成對(duì)出現(xiàn)的,它們組成了一個(gè)數(shù)據(jù)的通道,數(shù)據(jù)從一個(gè)設(shè)備進(jìn)入,就會(huì)從另一個(gè)設(shè)備出來(lái)。因此,veth 設(shè)備常用來(lái)連接兩個(gè)網(wǎng)絡(luò)設(shè)備。
b. 在容器啟動(dòng)時(shí),Docker 引擎將 veth pair 設(shè)備的一端放在新創(chuàng)建的容器中,并命名為 eth0。另一端放在宿主機(jī)中,以 veth*** 這樣類似的名字命名,并將這個(gè)網(wǎng)絡(luò)設(shè)備加入到 docker0 網(wǎng)橋中,可以通過(guò) brctl show 命令查看。
c. 從 docker0 子網(wǎng)中分配一個(gè) 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 開(kāi)放的網(wǎng)絡(luò)接口 veth
# brctl show
# ifconfig
2.2 修改 docker0 網(wǎng)段
# ifconfig docker0 192.168.1.10/24 up
// 驗(yàn)證 docker0 更改為目標(biāo)網(wǎng)段
# ifconfig docker0
# service docker restart
// 查看容器網(wǎng)絡(luò)接口,驗(yàn)證是否更改為 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 啟動(dòng)配置文件 (centos 下,docker 啟動(dòng)配置文件路徑是 /etc/sysconfig/docker),添加 DOCKER_OPTS 值,使 docker 啟用新添加的網(wǎng)橋 br0
# vim /etc/sysconfig/docker
DOCKER_OPTS= -b=br0
// 修改 docker 守護(hù)進(jìn)程配置文件,添加 EnvironmentFile 絕對(duì)路徑與啟動(dòng)項(xiàng) $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,驗(yàn)證其更改為 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é)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!