如何解决“由于控制进程退出并显示错误代码,导致docker.service作业失败”

时间:2019-04-29 15:32:03

标签: docker

im triyng在Manjaro(我的内核版本为4.19)中使用docker,但无法正常工作。

运行sudo pamac install docker后,我运行sudo 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.

所以sudo 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 Mon 2019-04-29 12:28:44 -03; 39s ago
     Docs: https://docs.docker.com
  Process: 17769 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=1/FAILURE)
 Main PID: 17769 (code=exited, status=1/FAILURE)

abr 29 12:28:44 tamer-pc systemd[1]: docker.service: Service RestartSec=100ms expired, scheduling restart.
abr 29 12:28:44 tamer-pc systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
abr 29 12:28:44 tamer-pc systemd[1]: Stopped Docker Application Container Engine.
abr 29 12:28:44 tamer-pc systemd[1]: docker.service: Start request repeated too quickly.
abr 29 12:28:44 tamer-pc systemd[1]: docker.service: Failed with result 'exit-code'.
abr 29 12:28:44 tamer-pc systemd[1]: Failed to start Docker Application Container Engine.

journalctl -xe返回:

-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The unit docker.service has entered the 'failed' state with result 'exit-code'.
abr 29 12:28:44 tamer-pc systemd[1]: Failed to start Docker Application Container Engine.
-- Subject: A unidade docker.service falhou
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- A unidade docker.service falhou.
-- 
-- O resultado é failed.
abr 29 12:28:44 tamer-pc systemd[1]: docker.socket: Failed with result 'service-start-limit-hit'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The unit docker.socket has entered the 'failed' state with result 'service-start-limit-hit'.
abr 29 12:29:02 tamer-pc dbus-daemon[650]: [system] Activating via systemd: service name='org.freedesktop.resolve1' unit='>
abr 29 12:29:02 tamer-pc dbus-daemon[650]: [system] Activation via systemd failed for unit 'dbus-org.freedesktop.resolve1.>
abr 29 12:29:24 tamer-pc sudo[17879]:    tamer : TTY=pts/0 ; PWD=/etc/docker ; USER=root ; COMMAND=/usr/bin/systemctl stat>
abr 29 12:29:24 tamer-pc sudo[17879]: pam_unix(sudo:session): session opened for user root by (uid=0)
abr 29 12:29:24 tamer-pc sudo[17879]: pam_unix(sudo:session): session closed for user root
lines 1703-1725/1725 (END)

我正在找两天,但我读到的任何案例似乎都不是我的问题。

12 个答案:

答案 0 :(得分:2)

在本地计算机上设置 Kubenetes 时,我遇到了类似的问题:

当我尝试设置 Docker 以使用OverlayFS存储驱动程序时出现错误。

我运行了以下命令:

sudo systemctl stop docker
cp -au /var/lib/docker /var/lib/docker.bk

然后当我尝试使用以下命令再次启动docker时:

sudo systemctl start docker

它抛出了错误:

Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.

这是我的解决方法

我运行了以下命令来检查Tâmer Pinheiro answer之后的问题:

sudo dockerd --debug

它给了我这个信息:

INFO[2020-09-02T11:46:15.272833297Z] Starting up                                  
DEBU[2020-09-02T11:46:15.273547501Z] Listener created for HTTP on unix (/var/run/docker.sock) 
failed to start daemon: Unable to get the TempDir under /var/lib/docker: mkdir
/var/lib/docker/tmp: no space left on device

我还检查了服务器的磁盘空间:

df -h

表明驱动器(/dev/sda1 filesystem)上没有剩余空间:

Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           396M   12M  384M   4% /run
/dev/sda1       9.8G  9.8G     0 100% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock

tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           396M     0  396M   0% /run/user/1000

我意识到这个问题与设备上没有剩余空间有关。

我必须运行以下命令来清除文件系统的一些空间:

sudo find /var/log -type f -delete
sudo rm -rf /var/cache/apt/*
sudo apt clean all

最后,我删除了/var/lib/docker.bk文件,因为它对于服务器的 9.8GB文件系统来说太大了:

sudo rm -rf /var/lib/docker.bk

这次我运行命令:

sudo systemctl restart docker

一切正常。

仅此而已。

我希望这会有所帮助

答案 1 :(得分:1)

我按照各种步骤导致此错误。然后重新启动电脑,一切正常。

答案 2 :(得分:1)

在我的情况下,它是“ dns”数组/列表中/etc/docker/daemon.json中的悬挂逗号。我只是在最后一个条目后删除了逗号,它就起作用了。

答案 3 :(得分:1)

我收到错误消息“docker.service 的作业失败,因为控制进程退出并显示错误代码。”在 Centos 8 上安装 Docker 后。对我有帮助的是:

yum install iptables
iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

然后我成功运行了“sudo systemctl start docker”。

答案 4 :(得分:0)

我真的不知道发生了什么,但是我像Zeitounator那样运行sudo dockerd --debug来定向我,重新启动我的电脑,然后docker运行良好。

答案 5 :(得分:0)

我遇到了同样的问题,但是我遵循@Zeitounator的建议,然后运行此命令sudo dockerd --debug来查看问题。它显示此消息:

  

运行docker不支持您的Linux内核版本2.6.32-042stab138.1。请将您的内核升级到3.10.0或更高版本。

我已经更新了内核,它运行完美。希望对您有所帮助!

答案 6 :(得分:0)

对我来说,停止VPN解决了问题

答案 7 :(得分:0)

named.service的作业失败,因为控制过程退出并显示错误代码。有关详细信息,请参见“系统ctl名称为.service的状态”和“ journalctl -xe”。

答案 8 :(得分:0)

我也遇到了这个问题,@ Zeitounator提供的调试命令起到了很大的作用,但没有彻底解决问题。

原来的问题是我没有在Centos上安装Docker需要的IPTables。我使用以下演练来安装,启动和测试它们,然后docker开始没有问题。

https://linuxize.com/post/how-to-install-iptables-on-centos-7/

答案 9 :(得分:0)

对我来说,更新内核版本并重新启动即可解决问题。

答案 10 :(得分:0)

对我来说,更新 firewalld 解决了这个问题(个人沙箱,所以我完全禁用了防火墙)。

答案 11 :(得分:0)

面对同样的问题三步走:

1:docker --debug 确定它是网络问题的问题:无法对 NAT 链进行编程:ZONE_CONFLICT:'docker0' 已经绑定到一个区域

2:解决这个问题并找到运行命令

`firewall-cmd --zone=trusted --remove-interface=docker0`

3:systemctl start docker