将firewalld替换为iptables后Docker容器及自定义网络丢失如何恢复
Docker容器与自定义网络丢失恢复步骤
第一步:确认Docker服务运行状态
- 先执行命令查看服务状态:
systemctl status docker - 若服务未启动,执行启动命令:
systemctl start docker - 启动完成后先执行
docker ps -a、docker network ls验证容器和网络是否恢复,绝大多数场景下更换防火墙时误停Docker服务是核心原因。
第二步:校验Docker存储配置
- 执行命令查看当前Docker数据根目录:
docker info | grep "Docker Root Dir" - 确认输出路径和你实际存放容器、Volume的目录一致,默认路径为
/var/lib/docker。如果路径不匹配,编辑/etc/docker/daemon.json文件,修改data-root字段为你的实际存储路径,示例配置:
{ "data-root": "/你的实际存储路径", "storage-driver": "overlay2" }
- 可同步校验存储驱动是否和原有配置一致,避免驱动不匹配导致无法识别原有容器数据,修改完成后重启Docker服务生效:
systemctl restart docker
第三步:自定义网络恢复
- 若完成以上步骤后自定义桥接网络仍未显示,可直接按原配置重新创建网络:
docker network create --driver bridge 自定义网络名称 - 后续启动原有容器时,Docker会自动关联对应存储数据,无需额外手动绑定Volume。
额外注意事项
- 不要在
daemon.json中设置"iptables": false,该配置会禁止Docker自动管理iptables规则,易引发网络连通异常。 - 若使用Rootless模式部署Docker,要注意对应用户权限,root用户默认无法查看普通用户启动的容器资源。
内容的提问来源于stack exchange,提问作者xishi
相关产品推荐
相关产品推荐

