由于输入/输出错误无法重新启动Docker容器?

5

我发现本地计算机上的Redis实例停止工作了。我使用Docker进行托管,并尝试在容器上发出restart命令,因为ps显示它正在运行*。

docker restart my-redis

然而,这导致了以下错误消息:
``` Error response from daemon: Cannot restart container my-redis: driver failed programming external connectivity on endpoint my-redis (...): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:32777:tcp:172.17.0.2:6379: input/output error ```
*我在运行Docker的同一台机器上运行了一个DNS服务器。当我的PC启动时,会启动一个服务也监听53端口。为了使我的DNS服务器能够正确启动,我需要关闭该进程。我怀疑这是Docker使用的进程,因此可能可以最初启动容器,但在发出重启命令时失败(因为该进程被关闭)。
我已经设置了Docker使用我的本地DNS服务器(在“ Docker for Windows”的“设置 ->网络”下),但我不确定这是否与破坏我的容器的“输入/输出”错误有关。
4个回答

6

许多人(通常在Windows上)似乎遇到了这个问题,但尚未得到清楚的解决。请参考此问题

然而,有一种临时解决方法,就是禁用实验性功能(在上述问题中,许多人说在禁用实验性功能后问题得到了解决)。

我不确定如何禁用它以及您使用的操作系统是哪个,但您可以轻松地搜索以找到如何在您的操作系统上禁用它。


1
好的,禁用“实验性功能”对我有帮助,谢谢。它位于Docker for Windows的“Deamon”设置屏幕上,作为一个复选框。 - Ropstah
1
有趣。对我来说,当我启用实验性功能时它起作用了...^^(neo4j镜像) - Steve Rakebrandt
@SteveRakebrandt 重启后,我遇到了相同的问题(在第一次启用后)。然后我将其禁用,它就正常工作了。我认为这与“实验性功能”无关,我认为只是更改它会触发某些解决问题的东西 :p - George
2
禁用和启用实验性特性将导致 Docker 重启,因此真正的解决方案是重新启动 Docker。 - blastz

2

我也遇到了同样的问题 - 我本来要写一个帖子。昨天我创建了一个Weblogic容器,并在一天中多次停止和启动它(没有隔夜重启)。

今天尝试启动时,在我的Windows 10主机上出现了这个错误:

Original Answer翻译成"最初的回答"

Error response from daemon: driver failed programming external connectivity on endpoint wls (dd11b7bd7d23df50651a94eec68cdd2ec59e160d9c4ae8caa682f0a037218393): Error starting userland proxy: mkdir /port/tcp:0.0.0.0:9002:tcp:172.17.0.2:9002: input/output error

在docker端口显示tcp:172.17.0.2的地方出现了问题。即使docker说它运行正常,在我的Windows桌面计算机上过夜关闭并重新启动的新的一天后,这种情况以前也发生过。

我忽略了它,只是告诉它重新启动,并尝试再次启动docker,结果它正常工作了。

现在,当你执行docker ps-all时,它会显示ports: 0.0.0.0:7001->7001/tcp, 0.0.0.0:9002->9002/tcp,这表明它又可以工作了。

因此,在网络映射的掩盖下发生了一些奇怪的事情 - 很奇怪。

2019年3月13日


我也遇到了这个问题,而对我有效的方法是像@WILLIAM WOODMAN所说的那样重新启动机器和Docker。 - dwp

0
在我的情况下,问题是Docker在Redis正在进行磁盘转储的过程中被杀死了。
我通过删除temp-1.rdb和temp-2.rdb文件来解决这个问题。
dump.rdb文件是您最新的稳定备份,请不要删除该文件。

0

我遇到了这个错误,因为有一个磁盘错误。

dmesg 显示 sdi 错误

我的容器启动将在那个损坏的 sdi 磁盘上创建卷(只读错误)

修复磁盘错误对我有用

输入图像描述


请勿使用图像文本,包括文本。请遵循提示,如 输入图像说明 - greybeard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接