在Ubuntu上启动Docker作为守护进程

ken*_*ken 43 ubuntu docker

已成功使用Docker几周,但今天我遵循一系列说明建议将以下两行添加到docker配置文件中/etc/init/docker.conf:

limit memlock unlimited unlimited
limit nofile 262144
Run Code Online (Sandbox Code Playgroud)

然后建议重新启动Docker sudo /etc/init.d/docker restart.当我在Ubuntu 14.04下执行此操作时,它报告说:

  • Docker通过upstart进行管理,尝试使用服务docker restart

我试过sudo service docker restart它报告的内容:

停止:未知工作:码头工人

开始:未知工作: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
Run Code Online (Sandbox Code Playgroud)

要进行故障排除,我尝试在命令行上启动docker守护程序:

sudo docker -d
Run Code Online (Sandbox Code Playgroud)

在另一个终端窗口中,我现在可以正常运行Docker.这很好,但是如何让它再次正常启动呢?另外我注意到我有两个docker配置文件:

/etc/init/docker.conf
/etc/init/docker.io.conf
Run Code Online (Sandbox Code Playgroud)

它们看起来像DUP.他们多余了吗?我应该看哪一个?我需要两个吗?

我也注意到,当我运行时,sudo service --status-all |grep docker我会得到这两个dockerdocker.io列出的服务.长大的.

And*_*fan 34

有多个流行的存储库为Ubuntu提供docker包.该包docker.io(很可能)来自Ubuntu存储库.另一个流行的是 http://get.docker.io/ubuntu提供一个包lxc-docker(我正在运行后者,因为它更快地发布更新).确保只安装了一个包.是否正确清除包装并不十分确定.如果sudo service docker restart仍然无效,您可能需要在/ etc /中手动清理.

  • 好吧,我将把它标记为正确答案...我只是从 `/etc/init` 和 `/etc/default` 中删除了 docker.io 引用(以及获得一整夜的睡眠),现在 ` sudo service docker start`工作正常。 (2认同)

cwe*_*ske 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
Run Code Online (Sandbox Code Playgroud)

它似乎取决于环境变量.

service docker status成为root用户时有效su -,但仅在使用时才有效su:

$ su
Password:
$ service docker status
status: unknown job: docker
$ exit
$ su -
Password:
$ service docker status
docker start/running, process 2342
Run Code Online (Sandbox Code Playgroud)


sec*_*ree 8

这个问题真的花了我几个小时.

我的系统是Ubuntu 14.04,我安装了docker sudo apt-get install docker,并输入了导致问题的其他一些命令.

  1. 我谷歌"未知的工作:docker.io",答案没有生效.

  2. 我寻找"未知工作"的原因/etc/init.d/,找不到合适的答案.

  3. 我找了调试脚本的方法/etc/init.d/,找不到合适的答案.

  4. 然后,我干净了:

    1. sudo apt-get remove docker.io
    2. 每个可疑文件find / -name "*docker*",例如/etc/init/docker.io.conf,/etc/init.d/docker.io.
  5. 按照最新的官方文档:https://docs.docker.com/installation/,有很多过时的文档可能会产生误导.

最后,它解决了这个问题.

注意:如果您在中国,由于GFW,您可能需要设置https_proxy以从https://get.docker.com/安装docker .


Che*_*oor 7

我在 ubuntu 14.04 上遇到了同样的问题这是一个解决方案

sudo service docker start
Run Code Online (Sandbox Code Playgroud)

或者你可以列出图像

docker images
Run Code Online (Sandbox Code Playgroud)


tsu*_*mon 6

我知道这些问题已经得到解答,但是发生在您身上的原因可能是因为您没有将您的用户名添加到 docker 组。

以下是执行此操作的步骤:

如果 docker 组不存在,请添加它:

sudo groupadd docker
Run Code Online (Sandbox Code Playgroud)

将连接的用户添加${USER}到 docker 组。更改用户名以匹配您的首选用户:

sudo gpasswd -a ${USER} docker
Run Code Online (Sandbox Code Playgroud)

重启 Docker 守护进程:

sudo service docker restart
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 Ubuntu 14.04-15.10*,请改用 docker.io:

sudo service docker.io restart
Run Code Online (Sandbox Code Playgroud)

(如果您使用的是 Ubuntu 16.04,则该服务简单地命名为“docker”)

执行newgrpdocker 或注销/登录以激活对组的更改。