无法在 Docker 容器中执行 运行 命令
Cannot run command in Docker container
我正在尝试通过
在名为 "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 或容器似乎没有效果。我还确保硬盘上有足够的 space。在容器中启动任何其他二进制文件都会产生相同的错误。
版本信息:
docker --version:
Docker version 1.13.1, build 07f3374/1.13.1
OS:
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
如有任何帮助,我们将不胜感激。
我认为这是因为权限不足。
尝试 运行 docker 像下面这样使用 sudo。
sudo docker exec -it bind bash
希望对您有所帮助。
"Connection reset by peer",一般出现在端口有一定不匹配的情况下。就像您没有公开端口并试图使用它,或者不正确的端口映射。事实上,如果它是绑定到 localhost 的服务,请检查它,因为如果你想托管服务,你可能想将它绑定到 0.0.0.0
这个错误可能涉及很多问题。但主要是,它与绑定错误的端口和错误的 IP 一致。
这似乎是 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
今天我安装了 docker 的更新(Centos 上的版本 1.13.1-84),从那以后我的所有容器也遇到了同样的问题。
降级到版本 1.13.1-75 对我有用。
这里是 Red Hat 的 bugzilla 的错误报告:https://bugzilla.redhat.com/show_bug.cgi?id=1655214
如果你使用
yum update
之前,不知道 docker 的旧版本是什么,只是 运行
yum downgrade docker docker-client docker-common
对我有用
这是一个已知问题,已在较新的 docker 软件包中修复:
https://bugzilla.redhat.com/show_bug.cgi?id=1655214
对于那些有问题但无法升级的用户,William Brown 在不需要降级的问题中提到了一个解决方法。
PID=docker inspect --format {{.State.Pid}} <name of container>
nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh
希望这对你有用
我正在尝试通过
在名为 "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 或容器似乎没有效果。我还确保硬盘上有足够的 space。在容器中启动任何其他二进制文件都会产生相同的错误。
版本信息:
docker --version:
Docker version 1.13.1, build 07f3374/1.13.1
OS:
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
如有任何帮助,我们将不胜感激。
我认为这是因为权限不足。
尝试 运行 docker 像下面这样使用 sudo。
sudo docker exec -it bind bash
希望对您有所帮助。
"Connection reset by peer",一般出现在端口有一定不匹配的情况下。就像您没有公开端口并试图使用它,或者不正确的端口映射。事实上,如果它是绑定到 localhost 的服务,请检查它,因为如果你想托管服务,你可能想将它绑定到 0.0.0.0
这个错误可能涉及很多问题。但主要是,它与绑定错误的端口和错误的 IP 一致。
这似乎是 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
今天我安装了 docker 的更新(Centos 上的版本 1.13.1-84),从那以后我的所有容器也遇到了同样的问题。
降级到版本 1.13.1-75 对我有用。
这里是 Red Hat 的 bugzilla 的错误报告:https://bugzilla.redhat.com/show_bug.cgi?id=1655214
如果你使用
yum update
之前,不知道 docker 的旧版本是什么,只是 运行
yum downgrade docker docker-client docker-common
对我有用
这是一个已知问题,已在较新的 docker 软件包中修复: https://bugzilla.redhat.com/show_bug.cgi?id=1655214
对于那些有问题但无法升级的用户,William Brown 在不需要降级的问题中提到了一个解决方法。
PID=docker inspect --format {{.State.Pid}} <name of container>
nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh
希望这对你有用