docker - 我需要从 docker 容器中删除已删除的网络
问题描述
我正在本地机器(所有窗口)上使用 docker。为了允许我的容器访问我的网络中的其他资源,我创建了一个新网络并为其提供了所需的路由/网关信息。
重新启动我的机器以安装 VPN(与我的 docker 容器无关)后,网络消失了,并且连接到该网络的所有容器都拒绝以此错误启动:
DockerDo:来自守护进程的错误响应:找不到网络 0935c770e7e107c64e3255eaa56de2d2fce90aab108682196d4e2960a2fe5726
有没有办法从容器断开网络“重启后”?或者使用该 ID 重新创建网络就可以了。
编辑:我已经厌倦了使用断开命令。要么 ID 未翻译,要么我不知道应该告诉 docker 断开连接。这是直接从我的 PS 控制台复制的:
C:\WINDOWS\system32> docker network ls
NETWORK ID NAME DRIVER SCOPE
4661e7886520 nat nat local
bad4235f0598 none null local
C:\WINDOWS\system32> docker start BACH-dev
Error response from daemon: network 0935c770e7e107c64e3255eaa56de2d2fce90aab108682196d4e2960a2fe5726 not found
Error: failed to start containers: BACH-dev
C:\WINDOWS\system32> docker network disconnect 0935c770e7e107c64e3255eaa56de2d2fce90aab108682196d4e2960a2fe5726 BACH-dev
Error response from daemon: container 24bfd23804c7a95a923d0626c41f4c949317cb34a45cb81bc430dc2fa96037ae is not connected to the network 0935c770e7e107c64e3255eaa56de2d2fce90aab108682196d4e2960a2fe5726
解决方案
尝试从容器中恢复数据的一种可能选择(我不是 100% 确定它可以在您的特定情况下工作......)。
- 从停止的容器状态创建图像
docker commit my_stopped_container my_recovery_img:latest
- 删除当前容器
docker rm my_stopped_container
- 从转储的图像重新创建容器
docker run [your_options] --name my_stopped_container my_recovery_img:latest [your command]
同时,您应该通过将关键数据保护在卷或绑定挂载上来确保不会再次陷入这种情况。
推荐阅读
- java - 将文本字段中的文本从一个类复制到另一个类。(爪哇)
- c++ - 如何从文件中一次读取一个输入,类似于在 c++ 中使用 cin/scanf 从控制台读取输入?
- javascript - 如何从对象数组中删除重复记录?
- pymc3 - 在 PyMC3 中解析后验高斯过程
- javascript - 如何修复我的代码以获取使下拉菜单工作的功能?
- java - Spring中的自定义RetryPolicy不会重试
- dji-sdk - DJI API参考没有提到m100?
- angular - 如何从全局 css 文件中覆盖角度材质主题
- sql-server - 在 SSIS 中,如何比较连接中的 2 个列名,如果它们不同,则更新目标表中的行并插入新行?
- python - Python 和 Perl 打印字符编码的区别