1.創建docker網卡[root@i ~]# brctl addbr docker0[root@i ~]# ip addr add 192.168.42.1/24 dev docker0 # 這里的ip是給docker內部用的, 隨意配置一個即可[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# 啟動docker服務2.添加子網[root@i ~]# docker network create backend# 這樣我們就創建了backend子網,docker-compose就可以直接使用這個network# 如果無法常見子網,則使用下面的命令,跳過安全問題 [root@i ~]# docker network create backend --subnet 172.24.24.0/24 [root@i ~]# docker network lsNETWORK ID NAME DRIVER SCOPE6afff4d90f05 backend bridge local57de7f32064e bridge bridge local4b44a5340d6e host host localac8e8ffe243f none null local
成都創新互聯專注于企業網絡營銷推廣、網站重做改版、弋江網站定制設計、自適應品牌網站建設、H5網站設計、商城網站建設、集團公司官網建設、外貿營銷網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為弋江等各大城市提供網站開發制作服務。
這里可以看到有backend3.刪除網卡[root@i ~]# brctl show#查看網橋狀態bridge name bridge id STP enabled interfacesbr-5db3fa0c465f 8000.02424cfb3937 no veth038d483 veth2950f5c veth669dc5e veth715203f veth9f31643 vethd0f5330docker0 8000.3a4803cd6298 no veth9d3badb vethd7530fd[root@i ~]# brctl delif <網橋名> <端口名>#卸載網橋上的端口[root@i ~]# ifconfig#查看是否有網橋網卡名[root@i ~]# ifconfig <網橋名> down#關閉此網卡[root@i ~]# brctl delbr <網橋名>#刪除網橋
補充:Docker-Compose 自動創建的網橋與局域網沖突的終極解決方案一、問題描述
在使用 docker-compose 部署應用時, docker 默認的網絡模式是 bridge ,默認網段是 172.17.0.1/16。十分不巧的是我們自己物理機的局域網也使用的是 172.18.0.1/16 的網段。
在執行 docker-compose -f docker-compose.yml up -d 部署服務后,自動生成的網橋會依次使用 172.18.x.x,然而悲催的事情發生了。docker 生成的網橋與局域網沖突了。
于是乎,面向百度編程的漫漫長路開始了… …,但是,通過一次次的百度和谷歌,找到好多好多復制來復制去的博客,最終一遍一遍的試錯,最終也沒有解決我的問題,于是乎,這篇含金量達到 99.9999999999999999999999999% 的文章出爐了。
本次實驗環節的 Docker 版本[root@node100 docker-compose]# docker info | grep 'Server Version' Server Version: 19.03.12二、解決方案
停止 docker-compose 創建的容器docker-compose -f docker-compose.yml down
操作 Docker 容器# 停止 Docker 容器sudo systemctl stop docker# 停止 docker0 網橋sudo ip link set dev docker0 down# 刪除 docker0 網橋sudo brctl delbr docker0# 重置 iptablessudo 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# 添加如下內容,包含設置 Docker 容器的 IP 網段"default-address-pools" : [ { "base" : "192.168.0.0/16", "size" : 24 }]
P.S
注意:如果 daemon.json 中包含了其它的內容,請切記語法格式的正確性,比如用逗號隔開。
重啟 Docker 容器sudo systemctl daemon-reloadsudo systemctl start docker
重新安裝和啟動 docker-compose 的命令docker-compose -f docker-compose.yml up -d三、拓展方案
獲取 ISSUES 大佬們給出的一些解決方案
方案一
方案二
方案三
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
文章題目:docker-compose創建網橋,添加子網,刪除網卡的實現
當前鏈接:http://m.newbst.com/article20/dphco.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、外貿網站建設、網站設計公司、微信公眾號、網站收錄、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯