在虚拟机上安装docker,在防火墙关闭的情况下,虚拟机可以联网,运行的容器内不能联网

文章讲述了在虚拟机上使用Docker时,遇到Ubuntu容器网络更新无法连接的问题,原因在于docker自动生成的网桥不可用。通过停止docker服务,创建新网桥br0,修改dockerdaemon.json配置,解决了网络问题并确保容器成功挂载到新网桥上。博主建议升级内核或系统以避免类似问题。
摘要由CSDN通过智能技术生成

问题描述:

在虚拟机上安装运行docker,docker运行ubuntu容器,都可以正常进行,虚拟机防火墙是关闭状态,虚拟机可以连接网络(安装docker,pull镜像),在ubuntu容器内,使用命令apt-get update 更新时,无法连上网络

指令docker network inspect bridge查看网络:

网桥的IP是172.17.0.1,分配了172.17.0.2给容器,ping网桥和容器

可以连上网桥,但是ping不通容器,此时利用brctl show查看网桥,可以发现:

启动容器之后,bridge id还是8000.0000000000,与启动容器之前没有变化,因此断定是网桥的问题。

问题解决:

docker自动生成的网桥不可用,我们自己重新创建一个新的网桥

先停止docker

service docker stop

添加网桥

brctl addbr br0

添加ip字段:

ip addr add 172.16.0.1/24 dev br0

启用网桥br0

ip link set dev br0 up

查看网络br0

ifconfig br0

修改docker默认网桥:

vim /etc/docker/daemon.json

添加字段:"bridge":"br0"

重启docker

systemctl daemon-reload
systemctl start docker

查看网桥信息,可以看到新增的网桥

运行容器,在容器内已经可以联网了

此时在容器外,查看网桥的详细信息

此时容器已经成功挂载到了新增的网桥上,查看网桥信息,bridge id已经发生了改变

博主说问题原因是系统内核的网桥模块bridge.ko加载失败导致,解决问题的方案是升级内核或升级系统。Centos7 升级内核版参考这篇。

升级完成后,重装Docker,自定义网桥和容器,成功!不再有网络问题。

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值