Docker 无法执行到正在运行的容器

Docker 无法执行到正在运行的容器,docker,ubuntu-14.04,Docker,Ubuntu 14.04,运行docker容器后,docker run-d——名称nginx nginx,我无法在此容器上使用“docker exec”docker exec nginx echo 123 我收到一个错误: ERRO[2018-08-19T11:09:10.909894729+03:00] stream copy error: reading from a closed fifo ERRO[2018-08-19T11:09:10.909988081+03:00] stream copy error: re

运行docker容器后,
docker run-d——名称nginx nginx
,我无法在此容器上使用“docker exec”
docker exec nginx echo 123

我收到一个错误:

ERRO[2018-08-19T11:09:10.909894729+03:00] stream copy error: reading from a closed fifo
ERRO[2018-08-19T11:09:10.909988081+03:00] stream copy error: reading from a closed fifo
ERRO[2018-08-19T11:09:10.931102317+03:00] Error running exec 19c6ae3c5d796180e02577f037f6a1bd1453b70393098643719dea3537933ae2 in container: OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "process_linux.go:86: executing setns process caused \"exit status 22\"": unknown`
操作系统:ubuntu 14.04 内核:3.13.0-153-generic Docker:Docker版本18.06.0-ce,内部版本0ffa825

码头工人信息:

容器:1
跑步:1
暂停:0
停止:0
图片:1
服务器版本:18.06.0-ce
存储驱动程序:aufs
根目录:/var/lib/docker/165536.165536/aufs
备份文件系统:extfs
目录:5
支持的Dirperm1:false
日志驱动程序:json文件
Cgroup驱动程序:cgroupfs
插件:
卷:本地
网络:网桥主机macvlan空覆盖
日志:awslogs fluentd gcplogs gelf journald json文件日志条目splunk syslog
蜂群:不活跃
运行时:runc
默认运行时:runc
初始化二进制文件:docker Init
集装箱版本:d64c661f1d51c48782c9cec8fda7604785f93587
runc版本:69663f0bd4b60df09991c08812a60108003fa340
初始版本:fec3683
安全选项:
应用程序访问控制系统
用户
内核版本:3.13.0-153-generic
操作系统:Ubuntu 14.04.5 LTS
OSType:linux
架构:x86_64
中央处理器:4
总内存:3.86GiB
姓名:**************
ID:OL25:ISXX:RWR7:EY76:OQ6O:XLWG:ETWJ:FV2A:MC6A:ROP7:6DWD:DJX4
Docker根目录:/var/lib/Docker/165536.165536
调试模式(客户端):false
调试模式(服务器):false
注册处:https://index.docker.io/v1/
标签:
实验性:错误
不安全的登记处:
127.0.0.0/8
启用实时还原:错误


谢谢

请更新您的内核。虽然Docker应该与大多数内核3.10+版本一起使用,但旧内核通常存在低级问题。另请参阅,了解一个看似相同的问题,以及一个有效的解决方案:

更新到HWE(4.13.0-32-generic)并再次运行exec,但是请记住,stock 16.04使用4.4.0内核-应该有某种警告(至少)表明特定版本组合将不起作用


当他们使用ENTRYPOINT而不是CMD时,可能会发生这种情况。使用“docker inspect”检查您的图像/容器。命令行参数变成ENTRYPOINT的CMD


每当我执行
docker run-it opensuse/leap
然后执行
exit
命令时,我都可以重现这个问题。退出命令后,容器实际上已停止,但仍显示在
docker ps
中运行

解决方案:重新启动docker守护程序。然后再次尝试运行容器。如果停止,则不会显示运行状态

命令:
service docker restart


这在我的情况下奏效。

这似乎不是一个与编程相关的问题。询问可能是一个更好的地方,可以尝试获得对损坏的Docker安装的支持。不确定这是一个损坏的安装,因为我可以执行所有其他操作,如运行、附加、杀死等。我看到了这篇文章,但我想深入了解它为什么不工作,并修复它,而不仅仅是更新内核。正如您所说的,它应该支持3.10以上的内核,如果有人能够帮助找到解决这个特定问题的方法,那将是非常棒的。感谢这是默认的nginx容器,可以在其他系统上使用。inspect:`“CMD”:[“nginx”、“-g”、“守护进程关闭;”]上的CMD`