docker-compose創(chuàng)建網(wǎng)橋,添加子網(wǎng),刪除網(wǎng)卡的實(shí)現(xiàn)
1.創(chuàng)建docker網(wǎng)卡
[root@i ~]# brctl addbr docker0 [root@i ~]# ip addr add 192.168.42.1/24 dev docker0 # 這里的ip是給docker內(nèi)部用的, 隨意配置一個(gè)即可 [root@i ~]# ip link set dev docker0 up [root@i ~]# ip addr show docker0 # 查看docker [root@i ~]# systemctl restart docker [root@i ~]# systemctl restart docker # 啟動(dòng)docker服務(wù)
2.添加子網(wǎng)
[root@i ~]# docker network create backend # 這樣我們就創(chuàng)建了backend子網(wǎng),docker-compose就可以直接使用這個(gè)network # 如果無(wú)法常見(jiàn)子網(wǎng),則使用下面的命令,跳過(guò)安全問(wèn)題 [root@i ~]# docker network create backend --subnet 172.24.24.0/24 [root@i ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 6afff4d90f05 backend bridge local 57de7f32064e bridge bridge local 4b44a5340d6e host host local ac8e8ffe243f none null local
這里可以看到有backend
3.刪除網(wǎng)卡
[root@i ~]# brctl show #查看網(wǎng)橋狀態(tài) bridge name bridge id STP enabled interfaces br-5db3fa0c465f 8000.02424cfb3937 no veth038d483 veth2950f5c veth669dc5e veth715203f veth9f31643 vethd0f5330 docker0 8000.3a4803cd6298 no veth9d3badb vethd7530fd [root@i ~]# brctl delif <網(wǎng)橋名> <端口名> #卸載網(wǎng)橋上的端口 [root@i ~]# ifconfig #查看是否有網(wǎng)橋網(wǎng)卡名 [root@i ~]# ifconfig <網(wǎng)橋名> down #關(guān)閉此網(wǎng)卡 [root@i ~]# brctl delbr <網(wǎng)橋名> #刪除網(wǎng)橋
補(bǔ)充:Docker-Compose 自動(dòng)創(chuàng)建的網(wǎng)橋與局域網(wǎng)沖突的終極解決方案
一、問(wèn)題描述
在使用 docker-compose 部署應(yīng)用時(shí), docker 默認(rèn)的網(wǎng)絡(luò)模式是 bridge ,默認(rèn)網(wǎng)段是 172.17.0.1/16。十分不巧的是我們自己物理機(jī)的局域網(wǎng)也使用的是 172.18.0.1/16 的網(wǎng)段。
在執(zhí)行 docker-compose -f docker-compose.yml up -d 部署服務(wù)后,自動(dòng)生成的網(wǎng)橋會(huì)依次使用 172.18.x.x,然而悲催的事情發(fā)生了。docker 生成的網(wǎng)橋與局域網(wǎng)沖突了。
于是乎,面向百度編程的漫漫長(zhǎng)路開(kāi)始了… …,但是,通過(guò)一次次的百度和谷歌,找到好多好多復(fù)制來(lái)復(fù)制去的博客,最終一遍一遍的試錯(cuò),最終也沒(méi)有解決我的問(wèn)題,于是乎,這篇含金量達(dá)到 99.9999999999999999999999999% 的文章出爐了。
本次實(shí)驗(yàn)環(huán)節(jié)的 Docker 版本
[root@node100 docker-compose]# docker info | grep 'Server Version' Server Version: 19.03.12
二、解決方案
停止 docker-compose 創(chuàng)建的容器
docker-compose -f docker-compose.yml down
操作 Docker 容器
# 停止 Docker 容器 sudo systemctl stop docker # 停止 docker0 網(wǎng)橋 sudo ip link set dev docker0 down # 刪除 docker0 網(wǎng)橋 sudo brctl delbr docker0 # 重置 iptables sudo iptables -t nat -F POSTROUTING
P.S
# linux brctl command not found,安裝 brctl yum install bridge-utils -y
修改 daemon.json
# 編輯 daemon.json 文件 vim /etc/docker/daemon.json
# 添加如下內(nèi)容,包含設(shè)置 Docker 容器的 IP 網(wǎng)段 "default-address-pools" : [ { "base" : "192.168.0.0/16", "size" : 24 } ]
P.S
注意:如果 daemon.json 中包含了其它的內(nèi)容,請(qǐng)切記語(yǔ)法格式的正確性,比如用逗號(hào)隔開(kāi)。
重啟 Docker 容器
sudo systemctl daemon-reload sudo systemctl start docker
重新安裝和啟動(dòng) docker-compose 的命令
docker-compose -f docker-compose.yml up -d
三、拓展方案
點(diǎn)擊此處獲取 ISSUES 大佬們給出的一些解決方案
方案一
方案二
方案三
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
docker 搭建基于prometheus的監(jiān)控體系步驟實(shí)現(xiàn)
本文主要介紹了docker 搭建基于prometheus的監(jiān)控體系步驟實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Docker中部署Mino并掛載配置文件的項(xiàng)目實(shí)踐
本文主要介紹了Docker中部署Mino并掛載配置文件的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Docker安裝Jenkins-2.249.3-1.1的詳細(xì)過(guò)程
這篇文章主要介紹了Docker安裝Jenkins-2.249.3-1.1,通過(guò)編寫(xiě)docke安裝腳本來(lái)實(shí)現(xiàn)安裝目的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10在Docker中開(kāi)發(fā)Java 8 Spring Boot應(yīng)用程序的方法
在本文中,我將向您展示如何使用Java 8開(kāi)發(fā)和運(yùn)行簡(jiǎn)單的Spring Web應(yīng)用程序,而無(wú)需在本地計(jì)算機(jī)上安裝Java 8。感興趣的朋友跟隨小編一起看看吧2019-10-10docker 學(xué)習(xí)筆記之docker連接網(wǎng)絡(luò)的設(shè)置
本篇文章主要介紹了docker 學(xué)習(xí)筆記之docker連接網(wǎng)絡(luò)的設(shè)置 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02yum下載rpm以及相關(guān)依賴(lài)的方式離線安裝docker
今天小編就為大家分享一篇關(guān)于yum下載rpm以及相關(guān)依賴(lài)的方式離線安裝docker,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12詳解SpringBoot項(xiàng)目docker環(huán)境運(yùn)行時(shí)無(wú)限重啟問(wèn)題
這篇文章主要介紹了詳解SpringBoot項(xiàng)目docker環(huán)境運(yùn)行時(shí)無(wú)限重啟問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11docker部署SpringCloud微服務(wù)項(xiàng)目方式
這篇文章主要介紹了docker部署SpringCloud微服務(wù)項(xiàng)目方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07