溫馨提示×

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

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

Docker添加自定義網(wǎng)橋的方法

發(fā)布時(shí)間:2021-02-22 10:26:57 來(lái)源:億速云 閱讀:310 作者:小新 欄目:服務(wù)器

這篇文章主要介紹了Docker添加自定義網(wǎng)橋的方法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Docker服務(wù)進(jìn)程在啟動(dòng)的時(shí)候會(huì)生成一個(gè)名為docker0的網(wǎng)橋,容器默認(rèn)都會(huì)掛載到該網(wǎng)橋下,但是我們可以通過(guò)添加docker啟動(dòng)參數(shù)-b Birdge 或更改docker配置文件來(lái)選擇使用哪個(gè)網(wǎng)橋。

操作系統(tǒng):centos7

刪除docker0網(wǎng)橋

service docker stop //關(guān)閉docker服務(wù) 
ip link set dev docker0 down //關(guān)閉docker0網(wǎng)橋  
ip link del dev docker0    //刪除docker0網(wǎng)橋

自定義網(wǎng)橋設(shè)置(/etc/sysconfig/network-scripts/ifcfg-br0文件)

DEVICE="br0" 
ONBOOT="yes" 
TYPE="Bridge" 
BOOTPROTO="static" 
IPADDR="10.10.10.20" 
NETMASK="255.255.255.0" 
GATEWAY="10.10.10.20" 
DEFROUTE="yes" 
NM_CONTROLLED="no"

重啟網(wǎng)絡(luò)服務(wù)

service network restart

查看網(wǎng)橋

[black@test opt]$ brctl show 
bridge name   bridge id        STP enabled   interfaces 
br0       8000.32e7297502be    no        
virbr0     8000.000000000000    yes

接下來(lái)我們需要重新啟動(dòng)docker,可以在啟動(dòng)docker服務(wù)進(jìn)程時(shí)使用以下兩種方式:

第一種:-b 參數(shù)指定網(wǎng)橋

[root@test opt]# docker -d -b br0 
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)  
INFO[0000] [graphdriver] using prior storage driver "devicemapper"  
WARN[0000] Running modprobe bridge nf_nat failed with message: , error: exit status 1  
INFO[0000] Loading containers: start.           
...... 
INFO[0000] Loading containers: done.           
INFO[0000] Daemon has completed initialization      
INFO[0000] Docker daemon   commit=786b29d execdriver=native-0.2 graphdriver=devicemapper version=1.7.1

不知道為什么這樣啟動(dòng)docker 服務(wù)進(jìn)程會(huì)阻塞當(dāng)前終端(︶︿︶),只好重新開(kāi)一個(gè)終端,然后運(yùn)行一個(gè)容器

[root@test shell]# docker run -ti --rm centos:latest 
[root@3c6874559411 /]# ifconfig 
eth0   Link encap:Ethernet HWaddr 02:42:0A:0A:0A:01  
     inet addr:10.10.10.1 Bcast:0.0.0.0 Mask:255.255.255.0 
     inet6 addr: fe80::42:aff:fe0a:a01/64 Scope:Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
     RX packets:5 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:0  
     RX bytes:418 (418.0 b) TX bytes:508 (508.0 b)

容器成功使用br0網(wǎng)橋。

第二種:修改/etc/sysconfig/docker文件

我在進(jìn)行這種操作的時(shí)候遇到了一點(diǎn)問(wèn)題,我修改了/etc/sysconfig/docker文件

[root@test opt]# vi /etc/sysconfig/docker  
# /etc/sysconfig/docker 
# 
# Other arguments to pass to the docker daemon process 
# These will be parsed by the sysv initscript and appended 
# to the arguments list passed to docker -d 
 
other_args="-b br0"

接著使用service docker start啟動(dòng)docker服務(wù),但是other_args并不生效,在centos7下servicer docker start仍然會(huì)采用systemctl start docker.service命令來(lái)運(yùn)行,于是我就打開(kāi)/usr/lib/systemd/system/docker.service查看

[root@test opt]# vi /lib/systemd/system/docker.service  
[Unit] 
Description=Docker Application Container Engine 
Documentation=https://docs.docker.com 
After=network.target docker.socket 
Requires=docker.socket 
[Service] 
ExecStart=/usr/bin/docker -d -H fd:// 
MountFlags=slave 
LimitNOFILE=1048576 
LimitNPROC=1048576 
LimitCORE=infinity 
 
[Install] 
WantedBy=multi-user.target

發(fā)現(xiàn)ExecStart一項(xiàng)并沒(méi)有運(yùn)行參數(shù),于是將ExecStart改為/usr/bin/docker -d -b br0 -H fd://,運(yùn)行docker服務(wù),啟動(dòng)一個(gè)容器發(fā)現(xiàn)能夠成功使用br0網(wǎng)橋。

在網(wǎng)上看到了一種更好的方法,將docker.service改為如下

[black@test ~]$ vi /usr/lib/systemd/system/docker.service  
[Unit] 
Description=Docker Application Container Engine 
Documentation=https://docs.docker.com 
After=network.target docker.socket 
Requires=docker.socket 
[Service] 
EnvironmentFile=-/etc/sysconfig/docker 
ExecStart=/usr/bin/docker -d $other_args -H fd:// 
MountFlags=slave 
LimitNOFILE=1048576 
LimitNPROC=1048576 
LimitCORE=infinity 
 
[Install] 
WantedBy=multi-user.target

這個(gè)時(shí)候在other_args中添加的參數(shù)就有效了。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Docker添加自定義網(wǎng)橋的方法”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

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

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

AI