同一个docker映像在一台机器上工作,在另一台机器上失败

同一个docker映像在一台机器上工作,在另一台机器上失败,docker,Docker,我有两台机器运行docker 1.13。我尝试使用以下命令运行centos:7映像: docker run -it centos:7 在机器A上,容器启动并显示提示,因为我现在在centos容器中。但是,在机器B上运行相同映像时,我得到: docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/bin/ba

我有两台机器运行docker 1.13。我尝试使用以下命令运行centos:7映像:

docker run -it centos:7
在机器A上,容器启动并显示提示,因为我现在在centos容器中。但是,在机器B上运行相同映像时,我得到:

docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory".
我想我的docker设置似乎有问题,尽管默认的hello world映像确实运行,例如ubuntu也可以运行。知道有什么问题吗?或者我如何调试它

以下是两台机器的docker信息:

机器A(工作机器):

机器B:

Containers: 44
 Running: 0
 Paused: 0
 Stopped: 44
Images: 29
Server Version: 1.13.0
Storage Driver: btrfs
 Build Version: Btrfs v4.2.2
 Library Version: 101
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e
init version: 949e6fa
Kernel Version: 4.1.12-61.1.23.el6uek.x86_64
Operating System: Oracle Linux Server 6.8
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 5.577 GiB
Name: lnx70346
ID: 3ZM2:CINA:5GBI:U63B:RWBM:QS5T:XD2P:6YPV:HQRF:VY3P:7OYC:4TJJ
Docker Root Dir: /docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

从评论中可以看出,docker文件系统中似乎存在某种损坏。您可能已经能够删除并再次拉取映像,但停止docker服务并擦除/var/lib/docker的最后一种方法将使系统恢复到干净状态。这不仅会删除所有下载的映像,还会删除所有容器和卷,因此在执行此操作之前,请确保备份存储在docker中的所有数据。

如果在机器B?bMatch上运行
docker pull centos:7
,则会发生什么情况?bMatch,然后它会声明映像已存在。如果我使用docker rmi删除它并尝试另一次拉取,它将按照它应该的方式下载映像。将映像的新副本拉取到机器B后,是否仍会发生错误?docker检查centos:7这两台机器是否不同?作为最后的手段,我会考虑/VAR/LIB / DOCKER腐败,停止码头工人,并给它擦拭,你会失去所有下载的图像,容器,和体积。BMICH,你的建议删除一切从/VAR/LIB / DOCKER是正确的。我移除了所有的东西,重新启动了docker。现在它正常工作了。谢谢!我有一个隐伏的问题,一些容器工作正常,而另一些不在某些系统上。使用
sudorm-rf/var/lib/docker/*
首先应用命令进行擦除,修复了该问题。也许我不应该在那台机器上使用
docker-rm--force
那么多?@masterxilo如果有什么东西被损坏了,我只需要擦除
/var/lib/docker
目录,而不是运行docker命令来清理它。docker命令假定文件系统没有损坏。
Containers: 44
 Running: 0
 Paused: 0
 Stopped: 44
Images: 29
Server Version: 1.13.0
Storage Driver: btrfs
 Build Version: Btrfs v4.2.2
 Library Version: 101
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e
init version: 949e6fa
Kernel Version: 4.1.12-61.1.23.el6uek.x86_64
Operating System: Oracle Linux Server 6.8
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 5.577 GiB
Name: lnx70346
ID: 3ZM2:CINA:5GBI:U63B:RWBM:QS5T:XD2P:6YPV:HQRF:VY3P:7OYC:4TJJ
Docker Root Dir: /docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false