天天看點

解決在CentOS 7上安裝docker後無法啟動的問題

Symptoms:

 在CentOS 7 上使用yum安裝docker後,無法啟動,報:

# 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 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 Thu 2018-03-22 11:01:13 EDT; 4s ago

     Docs: http://docs.docker.com

  Process: 2948 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)

 Main PID: 2948 (code=exited, status=1/FAILURE)

Mar 22 11:01:12 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...

Mar 22 11:01:12 localhost.localdomain dockerd-current[2948]: time="2018-03-22T11:01:12.114129701-04:00" level=warning msg="could not change g...found"

Mar 22 11:01:12 localhost.localdomain dockerd-current[2948]: time="2018-03-22T11:01:12.118546683-04:00" level=info msg="libcontainerd: new co... 2953"

Mar 22 11:01:13 localhost.localdomain dockerd-current[2948]: Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (--selinux-enabled=false) 

Mar 22 11:01:13 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE

Mar 22 11:01:13 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.

Mar 22 11:01:13 localhost.localdomain systemd[1]: Unit docker.service entered failed state.

Mar 22 11:01:13 localhost.localdomain systemd[1]: docker.service failed.

Hint: Some lines were ellipsized, use -l to show in full.

Solutions:

根據高亮的錯誤日志得知,此linux的核心中的SELinux不支援 overlay2 graph driver ,解決方法有兩個,要麼啟動一個新核心,要麼就在docker裡禁用selinux,--selinux-enabled=false 重新編輯docker配置檔案: # vim /etc/sysconfig/docker

# /etc/sysconfig/docker

# Modify these options if you want to change the way the docker daemon runs

OPTIONS='--selinux-enabled=false --log-driver=journald --signature-verification=false'

if [ -z "${DOCKER_CERT_PATH}" ]; then

    DOCKER_CERT_PATH=/etc/docker

fi

如上改為--selinux-enabled=false後儲存,重新開機docker,搞定!