2016-08-23 299 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