解决虚拟机挂起重连后无法连接docker容器的问题

问题描述

最近在docker中部署各种容器时,遇到一个问题:每次挂起虚拟机恢复后,就无法连接docker中的容器了,必须要重新启动容器才能正常连接,非常麻烦,查阅各种资料后,解决方法如下

1、关闭防火墙

由于我是学习环境,所以直接关闭防火墙了,这样就不用每次部署容器时一个个去开放端口,这一步根据自己需要来

# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

2、修改ipv4转发状态

首先打开配置文件

vi /usr/lib/sysctl.d/00-system.conf

解决虚拟机挂起重连后无法连接docker容器的问题_第1张图片
添加如下信息

net.ipv4.ip_forward = 1

保存退出后,重启网络服务

systemctl restart network

之后查看ipv4转发状态

sysctl net.ipv4.ip_forward

显示 net.ipv4.ip_forward=1 则成功
在这里插入图片描述

3、将docker的网络接口设置为不被NetworkManager管理

这一步参考了StackOverflow上的一篇帖子:

https://stackoverflow.com/questions/57874055/cant-connect-to-docker-after-resuming-vm

新建一个配置文件

vi /etc/NetworkManager/conf.d/10-unmanage-docker-interfaces.conf

在文件中添加如下内容

[keyfile]
unmanaged-devices=interface-name:docker*;interface-name:veth*;interface-name:br-*;interface-name:vmnet*;interface-name:vboxnet*

保存退出后,重启NetworkManager

systemctl restart NetworkManager

完成上面三步后,就算挂起虚拟机重连,也能正常访问docker中的容器了

你可能感兴趣的:(Linux,docker,容器,运维,centos)