已成功使用Docker几周但今天当我按照一组说明建议将以下两行添加到/etc/init/docker.conf
的docker配置文件时:
limit memlock unlimited unlimited
limit nofile 262144
然后建议使用sudo /etc/init.d/docker restart
重新启动Docker。当我在Ubuntu 14.04下做到这一点时,它报告说:
- Docker通过upstart进行管理,尝试使用service docker restart
我尝试了sudo service docker restart
报告的内容:
停止:未知作业:docker
开始:未知作业: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
作为列出的服务。生长。
答案 0 :(得分:32)
有多个流行的存储库为Ubuntu提供docker软件包。包docker.io
(很可能)来自Ubuntu存储库。另一个流行的是http://get.docker.io/ubuntu
,它提供了一个包lxc-docker
(我正在运行后者,因为它可以更快地发布更新)。确保只安装了一个包。是否正确清除包装并不十分确定。如果sudo service docker restart
仍然不起作用,您可能需要在/ etc /.
答案 1 :(得分:14)
我在14.04上遇到了与docker 1.9.1相同的问题。
当我使用sudo时,upstart服务命令确实有效,即使我是root用户:
$ whoami
root
$ service docker status
status: Unbekannter Auftrag: docker
$ sudo service docker status
docker start/running, process 7394
这似乎取决于环境变量。
service docker status
在使用su -
成为root用户时有效,但在仅使用su
时则无效:
$ su
Password:
$ service docker status
status: unknown job: docker
$ exit
$ su -
Password:
$ service docker status
docker start/running, process 2342
答案 2 :(得分:8)
这个问题花了我几个小时。
我的系统是Ubuntu 14.04,我通过sudo apt-get install docker
安装了docker,并输入了导致问题的其他一些命令。
我谷歌“未知工作:docker.io”,答案没有生效。
我在/etc/init.d/
找了“未知工作”的原因,找不到合适的答案。
我在/etc/init.d/
找了调试脚本的方法,找不到合适的答案。
然后,我干净了:
sudo apt-get remove docker.io
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。
答案 3 :(得分:3)
我知道这些问题已得到解答,但是发生这种情况的原因可能是因为您没有将用户名添加到泊坞组。
以下是执行此操作的步骤:
添加泊坞组(如果它尚不存在):
sudo groupadd docker
将已关联的用户${USER}
添加到泊坞窗组。更改用户名以匹配您的首选用户:
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
泊坞窗或注销/以激活对群组的更改。
答案 4 :(得分:0)
如果出现错误,守护程序未运行且以更多输出启动,例如
sudo docker daemon -D
并且输出是超时,这可以在Ubuntu下修复,执行如下:
$ ps axf | grep docker | grep -v grep | awk '{print "kill -9 " $1}' | sudo sh
(资料来源:https://github.com/moby/moby/issues/22507#issuecomment-219601289)
答案 5 :(得分:0)
我遇到了同样的问题,这是由于未安全注册表中的行造成的: 的/ etc /默认/搬运工