无法在CentOS7中启动Docker守护进程

12

执行systemctl start docker后,我收到以下信息:

无法启动docker.service:找不到该单元。

而这是systemctl status docker -l的输出:

[root@HP11012078 init.d]# systemctl status docker -l
● docker.service - Docker Application Container Engine
   Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: https://docs.docker.com

Feb 09 17:04:35 HP11012078 docker[28152]: time="2017-02-09T17:04:35.104333869+08:00" level=warning msg="container 58a5c6ba6710240bb5b1fd79e4600b547cf4c882eb2ca85e15c59c1404106877 restart canceled"
Feb 09 17:04:35 HP11012078 docker[28152]: time="2017-02-09T17:04:35.113914527+08:00" level=warning msg="container d320ba5f02cdd8567893acfc62b6673a24b6c8a43ccb52342bb3470ff420230d restart canceled"
Feb 09 17:04:35 HP11012078 docker[28152]: time="2017-02-09T17:04:35.122613873+08:00" level=warning msg="container 4030daadb9481a1b96b7a5c614c8910a601f83f2dced8340f4ea4c3583e7e844 restart canceled"
Feb 09 17:04:45 HP11012078 docker[28152]: time="2017-02-09T17:04:45.002120051+08:00" level=info msg="Container c13f11ce792c477d9b663c6fdbcfe9694663f7843a40540c58922893f4b41247 failed to exit within 10 seconds of signal 15 - using the force"
Feb 09 17:04:45 HP11012078 docker[28152]: time="2017-02-09T17:04:45.002120421+08:00" level=info msg="Container 0457d15d8b0bc83458dd3eea0c0b84699465da9746defc2429db89e426dbfa75 failed to exit within 10 seconds of signal 15 - using the force"
Feb 09 17:04:45 HP11012078 docker[28152]: time="2017-02-09T17:04:45.002870012+08:00" level=warning msg="Cannot kill container c13f11ce792c477d9b663c6fdbcfe9694663f7843a40540c58922893f4b41247: rpc error: code = 2 desc = \"containerd: container not found\""
Feb 09 17:04:45 HP11012078 docker[28152]: time="2017-02-09T17:04:45.049505738+08:00" level=warning msg="container 0457d15d8b0bc83458dd3eea0c0b84699465da9746defc2429db89e426dbfa75 restart canceled"
Feb 09 17:04:45 HP11012078 docker[28152]: time="2017-02-09T17:04:45.173034929+08:00" level=error msg="Force shutdown daemon"
Feb 09 17:04:45 HP11012078 docker[28152]: time="2017-02-09T17:04:45+08:00" level=info msg="stopping containerd after receiving terminated"
Feb 09 17:04:46 HP11012078 systemd[1]: Stopped Docker Application Container Engine.

但我可以使用docker daemon命令启动Docker。请帮忙。

5个回答

14
为解决此问题,需要创建一个缺失的文件:/usr/lib/systemd/system/docker.socket。
[Unit]
Description=Docker Socket for the API
PartOf=docker.service

[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target

然后运行:

systemctl daemon-reload
systemctl start docker.socket
systemctl start docker

然后Docker就会启动。看起来安装程序删除了那个文件并没有替换它。


1
非常感谢!我以为我永远解决不了这个问题。 - Neo
之后我在RHEL中遇到了“无法侦听Docker套接字API”的问题。这个解决方案对我有用:https://unix.stackexchange.com/a/427792/307540 - Panu Haaramo

8

尝试重新安装Docker,看看问题是否仍然存在:

sudo yum install docker 

然后执行命令service docker startdocker info

这对我有用...我做了'pip install docker',但应该是'sudo yum install docker'。 - Akson
@Akson 很好的观点。我已经编辑了答案,添加了缺失的“sudo”。 - VonC

6
如果在CentOS 8上安装Docker时出现以下错误:
在CentOS 8.1上,podman-manpages与docker-ce存在冲突(podman是Red Hat的容器引擎,作为Docker的替代品预装)。
一个简单的解决方案是如果不需要podman,则卸载它:
sudo yum -y remove podman
https://github.com/containers/libpod/issues/4791 然后您可以安装Docker:
sudo dnf install docker-ce --nobest -y
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker

非常感谢!尝试了所有以上的解决方案,这是唯一有效的一个。在 Windows 10 主机上运行 VirtualBox 中的 CentOS。 - Shane Knowles

3

我按照 Docker 安装指南安装后,启动 Docker 时遇到了同样的错误(找不到单元)。 我不得不先卸载:

yum remove docker-ce-cli containerd.io

然后使用以下命令重新安装:

curl -sSL https://get.docker.com/ | sh

这个方法很好用。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接