记录一次linux 虚拟机诡异的网络问题

在这里插入图片描述
在 9月14 号的时候, 我设置好的docker 容器, 能够正常使用.

但是在9月19 号下班后, 按照要求,搬了一下工位.
重启电脑后,发现docker 宿主机能 ping www.baidu.com , 容器内无法连接互联网.
经检测,虚拟机的ip 和windows 的主机ip 都没变. 但是 linux 的虚拟机莫名其妙起来了防火墙, 但是linux 虚拟机和 windows 之间无法ping 通. 解决这个问题后, 还要解决容器内的网络问题.
在这里插入图片描述
我这个时候的解决方案是 启动一个新的容器,并让容器使用宿主机的网络.
然后又可以继续使用容器内的jenkins 服务了.

三天后,当我把windows 重启后, 再次启动docker 里这个容器的时候,发现在centos 内都无法通过 ip:port 访问容器内的jenkins 服务了.
我这个时候,首先检查是不是容器内的网络, 容器和宿主机的网络是一样的,都能使用.
然后这个时候发现了一个问题. 被启动的容器的端口号并没有.
在这里插入图片描述
这样就很奇了怪了,毕竟上次还是能使用容器内的jenkins 服务的, 我都做了镜像备份了.

此时面对丢失了的端口的容器,我停下并删除它.
用镜像重新启动了一个容器,此时发现, 重新启动的容器,指定的端口号没有 生效.
docker run -p 8080:8080 -itd --name my_ci -v /root/CITools:/export/software --privileged=true --network=host 5bf5aa956bf7 /sbin/init
用这个命令生成的容器, 指定的代理端口无效(已经删除了旧的容器的情况下)
随后我将 --network=host 删除, 不指定使用宿主机的网络

docker run -p 8080:8080 -itd --name my_ci -v /root/CITools:/export/software --privileged=true 5bf5aa956bf7 /sbin/init

这时候,报错了一个警告,但是不影响容器的创建和启动
IPv4 forwarding is disabled. Networking will not work.
这个报错,我去百度了一下,说是要设置宿主机的网络设置,允许转发网络(在网桥模式的情况下)

下面是解决这个警告的方法
vim /etc/sysctl.conf
#配置转发
net.ipv4.ip_forward=1
保存并退出编辑.
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward

这个时候,就可以重新启动容器了, 然后进去到容器内, ping www.baidu.com

问题此时应该会解决了.

但是为什么会出现这种情况, 还是不太清楚.连续两次都是根据出现的问题的表象进行了解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值