2016-08-23 298 views
4

我有一个CentOS 7.2 VM,安装了docker,docker服务和docker container之前都正常工作。但在我试图拉一个码头图像时,虚拟机突然关闭。在我重新启动虚拟机之后,docker服务无法启动。Docker服务启动失败

[[email protected] ~]# service docker start 
Redirecting to /bin/systemctl start docker.service 
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 

systemctl状态docker.service输出:

[[email protected] ~]# systemctl status docker.service 
● docker.service - Docker Application Container Engine 
    Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) 
    Active: failed (Result: exit-code) since Tue 2016-08-23 19:11:19 CST; 13min ago 
    Docs: http://docs.docker.com 
    Process: 1404 ExecStart=/usr/bin/docker-current daemon --exec-opt native.cgroupdriver=systemd $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=1/FAILURE) 
Main PID: 1404 (code=exited, status=1/FAILURE) 

Aug 23 19:11:17 AY13091717064020986bZ systemd[1]: Starting Docker Application Container Engine... 
Aug 23 19:11:19 AY13091717064020986bZ docker-current[1404]: time="2016-08-23T19:11:19.448828158+08:00" level=warning msg="devmapper: Usage of loopback devices is strongly discou...v section." 
Aug 23 19:11:19 AY13091717064020986bZ docker-current[1404]: time="2016-08-23T19:11:19.511103592+08:00" level=error msg="[graphdriver] prior storage driver \"devicemapper\" faile...t status 2" 
Aug 23 19:11:19 AY13091717064020986bZ docker-current[1404]: time="2016-08-23T19:11:19.511196844+08:00" level=fatal msg="Error starting daemon: error initializing graphdriver: de...t status 2" 
Aug 23 19:11:19 AY13091717064020986bZ systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE 
Aug 23 19:11:19 AY13091717064020986bZ systemd[1]: Failed to start Docker Application Container Engine. 
Aug 23 19:11:19 AY13091717064020986bZ systemd[1]: Unit docker.service entered failed state. 
Aug 23 19:11:19 AY13091717064020986bZ systemd[1]: docker.service failed. 
Hint: Some lines were ellipsized, use -l to show in full. 

“journalctl -xe” 输出:

[[email protected] ~]# journalctl -xe 
Aug 23 19:11:19 AY13091717064020986bZ kernel: device-mapper: block manager: btree_node validator check failed for block 146 
Aug 23 19:11:19 AY13091717064020986bZ kernel: device-mapper: btree spine: node_check failed: csum 1600702373 != wanted 1600827965 
Aug 23 19:11:19 AY13091717064020986bZ kernel: device-mapper: block manager: btree_node validator check failed for block 146 
Aug 23 19:11:19 AY13091717064020986bZ kernel: Buffer I/O error on device dm-1, logical block 2621424 
Aug 23 19:11:19 AY13091717064020986bZ docker-current[1404]: time="2016-08-23T19:11:19.511103592+08:00" level=error msg="[graphdriver] prior storage driver \"devicemapper\" failed: devmapper: 
Aug 23 19:11:19 AY13091717064020986bZ docker-current[1404]: time="2016-08-23T19:11:19.511196844+08:00" level=fatal msg="Error starting daemon: error initializing graphdriver: devmapper: Base 
Aug 23 19:11:19 AY13091717064020986bZ systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE 
Aug 23 19:11:19 AY13091717064020986bZ systemd[1]: Failed to start Docker Application Container Engine. 
-- Subject: Unit docker.service has failed 
-- Defined-By: systemd 
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel 
-- 
-- Unit docker.service has failed. 
-- 
-- The result is failed. 
Aug 23 19:11:19 AY13091717064020986bZ systemd[1]: Unit docker.service entered failed state. 
Aug 23 19:11:19 AY13091717064020986bZ systemd[1]: docker.service failed. 
Aug 23 19:11:19 AY13091717064020986bZ polkitd[1014]: Unregistered Authentication Agent for unix-process:1370:16052 (system bus name :1.22, object path /org/freedesktop/PolicyKit1/Authenticati 
Aug 23 19:23:43 AY13091717064020986bZ systemd[1]: Starting Cleanup of Temporary Directories... 
-- Subject: Unit systemd-tmpfiles-clean.service has begun start-up 
-- Defined-By: systemd 
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel 
-- 
-- Unit systemd-tmpfiles-clean.service has begun starting up. 
Aug 23 19:23:43 AY13091717064020986bZ systemd[1]: Started Cleanup of Temporary Directories. 
-- Subject: Unit systemd-tmpfiles-clean.service has finished start-up 
-- Defined-By: systemd 
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel 
-- 
-- Unit systemd-tmpfiles-clean.service has finished starting up. 
-- 
-- The start-up result is done. 

泊坞窗版本:

[[email protected] ~]# docker version 
Client: 
Version:   1.10.3 
API version:  1.22 
Package version: docker-common-1.10.3-46.el7.centos.10.x86_64 
Go version:  go1.6.3 
Git commit:  d381c64-unsupported 
Built:   Thu Aug 4 13:21:17 2016 
OS/Arch:   linux/amd64 
Cannot connect to the Docker daemon. Is the docker daemon running on this host? 

的Linux内核版本:

[[email protected] ~]# uname -a 
Linux AY13091717064020986bZ 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 
[[email protected] ~]# 

CentOS的版本:

[[email protected] ~]# lsb_release -a 
LSB Version: :core-4.1-amd64:core-4.1-noarch 
Distributor ID: CentOS 
Description: CentOS Linux release 7.2.1511 (Core) 
Release: 7.2.1511 
Codename: Core 
[[email protected] ~]# 
+0

检查并尝试重新安装搬运工? – vitr

+0

你可以尝试重新启动服务 - 服务docker重新启动吗? – Bhavesh

+0

第一次没有发生这个问题,我删除了/ var/lib/docker并重新提取了所有图像,并在第一次发生时运行。我不能总是这样做,我想找到最终解决问题的方法。 @Bhavesh:重新启动的输出与启动相同。 – kiford

回答

1

我有类似的问题。这是我永久修复的方式:

  • 删除/ var/lib/docker中的所有东西。这将删除退出 容器和图像: rm -rf /var/lib/docker
  • 然后配置您的守护程序以使用“覆盖”存储驱动程序。在位于“/ etc/docker /”中的daemon.json中设置 以下标志。如果 文件不存在,只是创建并添加如下内容: { "graph": "/mnt/docker-data", "storage-driver": "overlay" }

现在正常重新启动码头工人和所有应该能正常运行,并始终

https://docs.docker.com/engine/admin/systemd/#start-automatically-at-system-boot

+0

比overlay更好的是overlay2。 –

0

我有一个类似的问题,这似乎是由以前的安装在/ var/lib/docker留下的cruft造成的。

背景细节:我简单地使用了CentOS extras repo中的docker;然后,我删除了它,安装了docker repo,并从该repo安装了docker-ce。这会在/ var/lib/docker后面留下并填充,但不属于docker-ce软件包。

下面固定此:

  • rpm -e docker-ce
  • rm -f /var/lib/docker
  • yum install docker-ce
0

我与衍生的拱类似的问题。重启后一切顺利。

sudo shutdown -r now 

然后用类似

systemctl status docker