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

问题描述 投票:3回答:3

我注意到我的本地电脑上的Redis实例停止工作了。我使用Docker来托管它并尝试在容器上发出restart命令,因为ps声称它正在运行*。

docker restart my-redis

但是,这会产生以下错误消息:

来自守护程序的错误响应:无法重启容器my-redis:驱动程序无法在端点上编程外部连接my-redis(...):启动userland代理时出错:mkdir /port/tcp:0.0.0.0:32777:tcp:172.17.0.2 :6379:输入/输出错误

*我一直在运行Docker的同一台机器上运行DNS服务器。我的PC启动时启动了一个服务,它也在端口53处侦听。我需要关闭此过程以便我的DNS服务器正常启动。我怀疑这是Docker使用的一个过程,因此它最初可能能够启动容器,但在发出restart时失败(因为该过程被关闭)。

我已经设置了Docker来使用我的本地DNS服务器(在Docker for Windows的设置 - >网络下),但我不确定这是否与打破我的容器的input/output错误有关。

docker tcp dns ioerror
3个回答
5
投票

这个问题似乎已经发生在许多人身上(通常是在Windows上)并没有得到明确的解决。请参阅此issue

然而,有一个临时的方法来解决它,这是禁用experimental features(在上面的问题,许多人说它在禁用experimental features后解决)。

我不知道如何禁用它以及你正在使用哪个OS但你可以轻松谷歌找到如何为OS禁用它。


2
投票

Um也一直在为我发生 - 即将写一篇文章。我昨天创建了一个weblogic容器,并在白天停止了几次ok(没有重启)

凸轮尝试启动今天,并在我的Windows 10主机上出现此错误

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 ports显示tcp:172.17.0.2的位置

这已经发生在我的Windows桌面上过夜关闭并重新开始新的一天,即使docker说它运行正常

我忽略了它,只是告诉它重新启动,并尝试再次启动docker并且它有效

当你做一个docker ps -all现在它显示

ports: 0.0.0.0:7001->7001/tcp, 0.0.0.0:9002->9002/tcp表明它再次工作

所以在网络映射的封面下发生了一些令人毛骨悚然的事 - 很奇怪

13/03/2019


0
投票

在我的情况下,问题是当redis处于进行磁盘转储的过程中Docker被杀死了。

我通过删除temp-1.rdb temp-2.rdb文件解决了这个问题。

dump.rdb文件是您最新的稳定备份,请勿删除该文件。

© www.soinside.com 2019 - 2024. All rights reserved.