我尝试重新启动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'.
任何帮助都会非常感激。
答案 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
希望有帮助