docker-compose绑定端口失效(docker-compose创建网桥,添加子网,删除网卡的实现)
类别:服务器 浏览量:1394
时间:2021-10-21 07:48:35 docker-compose绑定端口失效
docker-compose创建网桥,添加子网,删除网卡的实现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服务
[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 ls NETWORK ID NAME DRIVER SCOPE 6afff4d90f05 backend bridge local 57de7f32064e bridge bridge local 4b44a5340d6e host host local ac8e8ffe243f none null local
这里可以看到有backend
3.删除网卡[root@i ~]# brctl show #查看网桥状态 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 <网桥名> <端口名> #卸载网桥上的端口 [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 # 重置 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
# 添加如下内容,包含设置 Docker 容器的 IP 网段 "default-address-pools" : [ { "base" : "192.168.0.0/16", "size" : 24 } ]
P.S
注意:如果 daemon.json 中包含了其它的内容,请切记语法格式的正确性,比如用逗号隔开。
重启 Docker 容器
sudo systemctl daemon-reload sudo systemctl start docker
重新安装和启动 docker-compose 的命令
docker-compose -f docker-compose.yml up -d
点击此处获取 ISSUES 大佬们给出的一些解决方案
方案一
方案二
方案三
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣
- docker和golang哪个好(使用Golang玩转Docker API的实践)
- 怎么用docker中的mysql连接数据库(连接docker里面的mysql失败解决方法)
- dockerpull镜像的过程(详解docker pull 下来的镜像都存到了哪里)
- docker如何启动springboot(Centos8.3、docker部署springboot项目实战案例分析)
- docker启动nginx容器命令(Docker安装Nginx教程实现图例讲解)
- docker和jenkins部署的区别(docker搭建jenkins服务的示例)
- docker主机路径与容器路径(Docker容器没有权限写入宿主机目录的解决方案)
- centos中docker安装部署(三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题)
- docker数据卷是什么(Docker数据卷容器创建及使用方法解析)
- 如何使用docker启动tomcat(Docker容器上用DockerFile部署多个tomcat服务的步骤)
- docker配置https访问方式(docker 中配置 eureka的方法)
- docker中的mongodb(Docker mongoDB 4.2.1 安装并收集springboot日志的步骤详解)
- django框架教程第100讲(详解Django+Vue+Docker搭建接口测试平台实战)
- docker 命令上传镜像到镜像仓库(Docker 使用国内镜像仓库的方法)
- dockerpull的镜像位置(解决docker pull镜像报错的问题)
- docker-compose怎么编写(docker-compose部署php项目实例详解)
- 全椒人,38年集体回忆 1980-2018 ,看完不要哭(全椒人38年集体回忆)
- 董元奔吟咏历代文人 1012新旧均可 全椒人张璪 1022 -1093(董元奔吟咏历代文人)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
- 人从众 火炎焱 全椒再现 正月十六走太平 的魅力(人从众火炎焱全椒再现)
- 官宣 全椒籍明星许海峰 奚秀兰 方芳 王璐瑶携手回家 走太平(全椒籍明星许海峰)
- 以前全椒人是怎么过冬的 满满都是回忆(以前全椒人是怎么过冬的)
热门推荐
- mysql主从同步失败原因(mysql 主从复制如何跳过报错)
- tomcat运行中找不到路径(Tomcat将配置文件放在外部的解决方法)
- vue element 权限管理(Vue Element前端应用开发之功能点管理及权限控制)
- windows下nginx 命令(win10安装配置nginx的过程)
- MongoDB聚合函数
- css3特效旋转菜单(CSS3实现的水平标题菜单)
- table 细边框
- css代码大全登录界面(Div+CSS仿微信公众平台登录页面)
- oracle删除表后怎么清理磁盘空间(Oracle 删除用户和表空间详细介绍)
- docker服务重启容器是否重启(docker自定义网桥docker0及docker的开启,关闭,重启命令操作)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9