Docker服务启动失败
Docker service start failed
我有一台安装了 Docker 的 CentOS 7.2 虚拟机。 Docker 服务和 Docker 容器以前工作正常。但是当我试图拉取 docker 图像时,VM 突然关闭。我重启虚拟机后,Docker服务无法启动:
[root@AY13091717064020986bZ ~]# 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
输出:
[root@AY13091717064020986bZ ~]# 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
" 输出:
[root@AY13091717064020986bZ ~]# 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.
Docker版本:
[root@AY13091717064020986bZ ~]# 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内核版本:
[root@AY13091717064020986bZ ~]# 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
[root@AY13091717064020986bZ ~]#
CentOS 版本:
[root@AY13091717064020986bZ ~]# 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
[root@AY13091717064020986bZ ~]#
我遇到了类似的问题。这就是我永久修复它的方法:
- 删除
/var/lib/docker
中的所有内容。这将删除现有的容器和图像:
rm -rf /var/lib/docker
- 然后将您的守护程序配置为使用“overlay”存储驱动程序。在
/etc/docker/daemon.json
中设置以下标志。如果该文件不存在,则创建它,并添加以下内容:
{
"graph": "/mnt/docker-data",
"storage-driver": "overlay"
}
现在再次正常启动 Docker,一切都应该正常运行。
我遇到了类似的问题,这似乎是由于之前的安装 /var/lib/docker
中留下的残渣造成的。
背景资料: 我曾短暂地使用过 CentOS extras 储存库中的 Docker;然后我删除了它,安装了 Docker 存储库,并从该存储库安装了 docker-ce。这留下 /var/lib/docker
落后并填充,但不属于 docker-ce 包。
以下解决了这个问题:
rpm -e docker-ce
rm -f /var/lib/docker
yum install docker-ce
我对 arch derived 也有类似的问题。重启后一切顺利
sudo shutdown -r now
然后检查
systemctl status docker
您只需要删除容器文件夹并重新启动
sudo rm /var/lib/docker/containers/ -rf && sudo reboot
您只需要重新启动服务器并检查您的daemon.json文件是否正确。
删除 /etc/docker 您将丢失所有图像和数据。
您可以使用
检查日志
journalctl -u docker.services
重启服务器
sudo reboot
systemctl daemon-reload &&
systemctl enable docker &&
systemctl start docker
这对我有用。
只有这个命令帮助我找到了这个错误的原因:
dockerd
在我看到的输出中:您的 Linux 内核版本 2.6.32-042stab127.2 不支持 运行 docker。请将您的内核升级到 3.10.0 或更新版本。
我刚刚删除了 /var/lib/docker 下的所有文件夹并重新启动了服务器,这在 rhel 7.7 系统中解决了同样的问题
发生这种情况是因为我想创建一个文件系统以安装在分配图像的 /var/lib/docker 上。
****注意它也会删除你所有的图片,如果你想保留任何图片只需发出 docker 保存命令
第一步。使用'dockerd'命令查看确切原因
[root@c7 docker]# dockerd
INFO[2020-06-03T11:27:50.293740882+05:30] Starting up
INFO[2020-06-03T11:27:50.298500541+05:30] parsed scheme: "unix" module=grpc
INFO[2020-06-03T11:27:50.298535150+05:30] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2020-06-03T11:27:50.298568308+05:30] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 <nil>}] <nil>} module=grpc
INFO[2020-06-03T11:27:50.298582671+05:30] ClientConn switching balancer to "pick_first" module=grpc
INFO[2020-06-03T11:27:50.305144487+05:30] parsed scheme: "unix" module=grpc
INFO[2020-06-03T11:27:50.305193838+05:30] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2020-06-03T11:27:50.305239948+05:30] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 <nil>}] <nil>} module=grpc
INFO[2020-06-03T11:27:50.305254274+05:30] ClientConn switching balancer to "pick_first" module=grpc
failed to start daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: overlay2, devicemapper; Please cleanup or explicitly choose storage driver (-s <DRIVER>)
第 2 步:删除 overlay
或 devicemapper
存储。应该只存在 1 个存储空间
[root@c7 docker]# rm -rf devicemapper
第三步:现在开始docker
[root@c7 docker]#systemctl start docker
第 4 步:如果低于错误
[root@c7 docker]# docker container ls
无法连接到 unix:///var/run/docker.sock
上的 Docker 守护进程。 docker 守护程序是 运行 吗?
第 5 步:删除以下文件并重新启动 docker
[root@c7 docker]# rm -rf /var/run/docker.pid
[root@c7 docker]# systemctl restart docker
第 6 步:您将取回图像和 运行 容器
dockerd 救了我一命,它显示 iptables/firewalld 不见了。
安装相同,效果很好。
我遇到了类似的问题。这就是我永久修复它的方法:
mv etc/docker/daemon.json daemon.conf
systemctl daemon-reload
service docker restart
我使用的是 docker 桌面,在设置中我删除了 WSL_update_x64 中的所有内容。它以前没有安装。所以在安装它之后我从设置中删除了文件并且它自己重新启动了。
在我的例子中它是空的 daemon.json
文件,删除这个文件修复了我:
sudo rm -f /etc/docker/daemon.json
sudo systemctl start docker
我有一台安装了 Docker 的 CentOS 7.2 虚拟机。 Docker 服务和 Docker 容器以前工作正常。但是当我试图拉取 docker 图像时,VM 突然关闭。我重启虚拟机后,Docker服务无法启动:
[root@AY13091717064020986bZ ~]# 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
输出:
[root@AY13091717064020986bZ ~]# 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
" 输出:
[root@AY13091717064020986bZ ~]# 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.
Docker版本:
[root@AY13091717064020986bZ ~]# 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内核版本:
[root@AY13091717064020986bZ ~]# 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
[root@AY13091717064020986bZ ~]#
CentOS 版本:
[root@AY13091717064020986bZ ~]# 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
[root@AY13091717064020986bZ ~]#
我遇到了类似的问题。这就是我永久修复它的方法:
- 删除
/var/lib/docker
中的所有内容。这将删除现有的容器和图像:
rm -rf /var/lib/docker
- 然后将您的守护程序配置为使用“overlay”存储驱动程序。在
/etc/docker/daemon.json
中设置以下标志。如果该文件不存在,则创建它,并添加以下内容:
{
"graph": "/mnt/docker-data",
"storage-driver": "overlay"
}
现在再次正常启动 Docker,一切都应该正常运行。
我遇到了类似的问题,这似乎是由于之前的安装 /var/lib/docker
中留下的残渣造成的。
背景资料: 我曾短暂地使用过 CentOS extras 储存库中的 Docker;然后我删除了它,安装了 Docker 存储库,并从该存储库安装了 docker-ce。这留下 /var/lib/docker
落后并填充,但不属于 docker-ce 包。
以下解决了这个问题:
rpm -e docker-ce
rm -f /var/lib/docker
yum install docker-ce
我对 arch derived 也有类似的问题。重启后一切顺利
sudo shutdown -r now
然后检查
systemctl status docker
您只需要删除容器文件夹并重新启动
sudo rm /var/lib/docker/containers/ -rf && sudo reboot
您只需要重新启动服务器并检查您的daemon.json文件是否正确。
删除 /etc/docker 您将丢失所有图像和数据。
您可以使用
检查日志journalctl -u docker.services
重启服务器
sudo reboot
systemctl daemon-reload && systemctl enable docker && systemctl start docker
这对我有用。
只有这个命令帮助我找到了这个错误的原因:
dockerd
在我看到的输出中:您的 Linux 内核版本 2.6.32-042stab127.2 不支持 运行 docker。请将您的内核升级到 3.10.0 或更新版本。
我刚刚删除了 /var/lib/docker 下的所有文件夹并重新启动了服务器,这在 rhel 7.7 系统中解决了同样的问题
发生这种情况是因为我想创建一个文件系统以安装在分配图像的 /var/lib/docker 上。
****注意它也会删除你所有的图片,如果你想保留任何图片只需发出 docker 保存命令
第一步。使用'dockerd'命令查看确切原因
[root@c7 docker]# dockerd
INFO[2020-06-03T11:27:50.293740882+05:30] Starting up
INFO[2020-06-03T11:27:50.298500541+05:30] parsed scheme: "unix" module=grpc
INFO[2020-06-03T11:27:50.298535150+05:30] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2020-06-03T11:27:50.298568308+05:30] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 <nil>}] <nil>} module=grpc
INFO[2020-06-03T11:27:50.298582671+05:30] ClientConn switching balancer to "pick_first" module=grpc
INFO[2020-06-03T11:27:50.305144487+05:30] parsed scheme: "unix" module=grpc
INFO[2020-06-03T11:27:50.305193838+05:30] scheme "unix" not registered, fallback to default scheme module=grpc
INFO[2020-06-03T11:27:50.305239948+05:30] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 <nil>}] <nil>} module=grpc
INFO[2020-06-03T11:27:50.305254274+05:30] ClientConn switching balancer to "pick_first" module=grpc
failed to start daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: overlay2, devicemapper; Please cleanup or explicitly choose storage driver (-s <DRIVER>)
第 2 步:删除 overlay
或 devicemapper
存储。应该只存在 1 个存储空间
[root@c7 docker]# rm -rf devicemapper
第三步:现在开始docker [root@c7 docker]#systemctl start docker
第 4 步:如果低于错误
[root@c7 docker]# docker container ls
无法连接到 unix:///var/run/docker.sock
上的 Docker 守护进程。 docker 守护程序是 运行 吗?
第 5 步:删除以下文件并重新启动 docker
[root@c7 docker]# rm -rf /var/run/docker.pid
[root@c7 docker]# systemctl restart docker
第 6 步:您将取回图像和 运行 容器
dockerd 救了我一命,它显示 iptables/firewalld 不见了。 安装相同,效果很好。
我遇到了类似的问题。这就是我永久修复它的方法:
mv etc/docker/daemon.json daemon.conf
systemctl daemon-reload
service docker restart
我使用的是 docker 桌面,在设置中我删除了 WSL_update_x64 中的所有内容。它以前没有安装。所以在安装它之后我从设置中删除了文件并且它自己重新启动了。
在我的例子中它是空的 daemon.json
文件,删除这个文件修复了我:
sudo rm -f /etc/docker/daemon.json
sudo systemctl start docker