问题描述
已经成功使用Docker几周了,但是今天当我遵循一组说明时,建议将以下两行添加到位于/etc/init/docker.conf
的Docker配置文件中:
limit memlock unlimited unlimited
limit nofile 262144
然后,它建议使用sudo /etc/init.d/docker restart
重新启动Docker。当我在Ubuntu 14.04下执行此操作时,它报告说:
- Docker is managed via upstart, try using service docker restart
我尝试对它报告的sudo service docker restart
:
stop: Unknown job: docker
start: Unknown job: docker
现在我陷入了docker守护进程无法运行的困境!我尝试重新启动,但仍然无法运行,当运行像sudo docker version
这样的简单操作时,我得到:
Client version: 1.2.0
Client API version: 1.14
Go version (client): go1.3.1
Git commit (client): fa7b24f
OS/Arch (client): linux/amd64
2014/10/01 09:57:45 Get http:///var/run/docker.sock/v1.14/version: dial unix /var/run/docker.sock: no such file or directory
为了解决问题,我尝试使用以下命令在命令行上启动docker守护进程:
sudo docker -d
在另一个终端窗口中,我现在能够正常运行Docker。很好,但是我如何才能使其再次正常启动?另外我注意到我有两个docker配置文件:
/etc/init/docker.conf
/etc/init/docker.io.conf
它们看起来像DUP。他们多余吗?我应该看哪一个?我两个都需要吗?
我还注意到,当我运行sudo service --status-all |grep docker
时,出现了这种重复性,我同时获得了docker
和docker.io
作为列出的服务。长大的。
最佳回答
有多个流行的存储库为Ubuntu提供docker软件包。软件包docker.io
(最有可能)来自Ubuntu存储库。另一个受欢迎的是http://get.docker.io/ubuntu
,它提供了一个软件包lxc-docker
(我正在运行后者,因为它可以更快地发布更新)。确保仅安装一个软件包。不太确定移除包装是否可以正确清理。如果sudo service docker restart
仍然不起作用,则可能必须在/etc /中手动清理。
次佳回答
我在14.04使用docker 1.9.1遇到了相同的问题。
即使我是root用户,使用sudo时upstart service命令也可以正常工作:
$ whoami
root
$ service docker status
status: Unbekannter Auftrag: docker
$ sudo service docker status
docker start/running, process 7394
它似乎取决于环境变量。
当成为su -
的根用户时,service docker status
起作用,但仅当使用su
时,service docker status
起作用:
$ su
Password:
$ service docker status
status: unknown job: docker
$ exit
$ su -
Password:
$ service docker status
docker start/running, process 2342
第三种回答
这个问题确实使我花费了几个小时。
我的系统是Ubuntu 14.04,我通过sudo apt-get install docker
安装了docker,并输入了导致问题的其他命令。
-
我在Google上搜索了“未知工作:docker.io”,答案没有生效。
-
我在
/etc/init.d/
中寻找”unknown job”的原因,找不到正确的答案。 -
我在
/etc/init.d/
中寻找调试脚本的方法,但未找到正确的答案。 -
然后,我做了一个清洁工作:
-
sudo apt-get remove docker.io
-
rm
find / -name "*docker*"
的每个可疑文件,例如/etc/init/docker.io.conf
,/etc/init.d/docker.io
。
-
-
请遵循最新的官方文档:https://docs.docker.com/installation/,其中有许多过时的文档可能会引起误解。
最后,它解决了问题。
注意:如果您在中国,由于GFW,您可能需要设置https_proxy才能从https://get.docker.com/安装docker。
第四种回答
我知道已经回答了这个问题,但是发生在您身上的原因可能是因为您没有将用户名添加到Docker组中。
这是执行此操作的步骤:
添加docker组(如果尚不存在):
sudo groupadd docker
将连接的用户${USER}
添加到docker组。更改用户名以匹配您的首选用户:
sudo gpasswd -a ${USER} docker
重新启动Docker守护程序:
sudo service docker restart
如果您使用的是Ubuntu 14.04-15.10 *,请改用docker.io:
sudo service docker.io restart
(如果您使用的是Ubuntu 16.04,则该服务将简称为”docker”)
执行newgrp
泊坞窗,或注销/登录以激活对组的更改。