服务docker启动失败(守护程序不是docker命令)

时间:2016-03-26 22:26:52

标签: docker digital-ocean upstart

我尝试重新启动docker后遇到问题。自那时候起, service docker start返回" start:作业无法启动"。

一旦我更改了docker.conf,这可能已经开始了。我试图使用命令

重新上载它
wget -O /etc/init/docker.conf https://raw.githubusercontent.com/docker/docker/master/contrib/init/upstart/docker.conf
然而,我没有幸运能解决这个问题。

cat /var/log/upstart/docker.log返回:

Waiting for /var/run/docker.sock
docker: 'daemon' is not a docker command. See 'docker --help'.
Waiting for /var/run/docker.sock
docker: 'daemon' is not a docker command. See 'docker --help'.
Waiting for /var/run/docker.sock
docker: 'daemon' is not a docker command. See 'docker --help'.

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:2)

您可能安装了旧版本的docker; docker daemon子命令为added in docker 1.8。在此之前,守护程序是使用-d / --daemon选项(docker -d)启动的。

您下载的upstart配置版本适用于当前 docker版本;对于旧版本的docker,请务必下载与您已安装的版本相匹配的版本,例如; https://raw.githubusercontent.com/docker/docker/v1.7.1/contrib/init/upstart/docker.conf

我建议升级到更新版本的docker,因为早于1.8的版本现在变得很旧(在Docker术语中)

答案 1 :(得分:0)

就我而言,升级至docker 19.03.5后,出现此错误。 手动启动/usr/bin/dockerd时,所有工作都有效,但是通过systemctl start docker时,它会失败。

看着journalctl -xe,我发现了日志:

docker: 'daemon' is not a docker command.

但是docker.service文件是正确的,从/usr/bin/dockerd开始。

我花了一段时间弄清楚以前的安装中的配置文件位于/etc/systemd/system/docker.service.d/override.conf中,该配置文件用其他不赞成使用的语法替换了docker daemon start命令(/usr/bin/dockerd)。

在这种情况下,您可以删除override.conf文件以允许docker启动:

rm /etc/systemd/system/docker.service.d/override.conf
systemctl daemon-reload
systemctl start docker

希望有帮助