无法在Docker容器中运行命令

时间:2018-12-04 04:24:42

标签: docker centos redhat

我正在尝试通过

在名为“ bind”的Docker容器中执行bash
docker exec -it bind bash

我收到以下错误消息:

rpc error: code = 2 desc = oci runtime error: exec failed: 
container_linux.go:247: starting container process caused "process_linux.go:110: 
decoding init error from pipe caused \"read parent: connection reset by peer\""

日志中没有特别之处。重新启动docker或容器似乎没有任何效果。我还确保硬盘驱动器上有足够的空间。在容器中启动任何其他二进制文件都会产生相同的错误。

版本信息:

docker --version:

Docker version 1.13.1, build 07f3374/1.13.1

操作系统:

cat /etc/redhat-release 

CentOS Linux release 7.6.1810 (Core) 

任何帮助将不胜感激。

7 个答案:

答案 0 :(得分:8)

这似乎是Docker RPM软件包的最新更新中引入的错误。暂时的解决方法是将所有Docker软件包降级到以前的版本(似乎可以使用75个)。

yum downgrade docker-1.13.1-75.git8633870.el7_5 \
              docker-client-1.13.1-75.git8633870.el7_5 \
              docker-common-1.13.1-75.git8633870.el7_5 \
              docker-rhel-push-plugin-1.13.1-75.git8633870.el7_5

答案 1 :(得分:2)

以下是有关Red Hat Bugzilla的错误报告:https://bugzilla.redhat.com/show_bug.cgi?id=1655214

答案 2 :(得分:2)

如果您使用

yum update

之前并且不知道Docker的旧版本是什么,只需运行

yum downgrade docker docker-client docker-common

对我有用

答案 3 :(得分:2)

这是一个已知问题,已在较新的Docker软件包中修复: https://bugzilla.redhat.com/show_bug.cgi?id=1655214

对于那些无法升级的问题,威廉·布朗提到了不需要降级的解决方法。

PID=docker inspect --format {{.State.Pid}} <name of container>
nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh

希望这对您有用

答案 4 :(得分:1)

今天我安装了docker更新(在Centos上为1.13.1-84版),从那时起,我所有的容器也遇到了相同的问题。

降级到1.13.1-75版本对我有用。

答案 5 :(得分:0)

我认为这是因为缺少权限。

尝试使用sudo运行docker,如下所示。

  

sudo docker exec-它绑定bash

希望这会有所帮助。

答案 6 :(得分:0)

“对等连接重置”,通常在端口存在某些不匹配时发生。好像您没有公开端口并尝试使用它,或者端口映射不正确。实际上,如果将服务a绑定到本地主机,请检查它,因为如果您要托管服务,则可能希望将其绑定到0.0.0.0

此错误可能与很多问题有关。但主要是,它与错误的端口和错误的IP绑定在一起。

相关问题