如何运行Docker守护进程?

20

我正在尝试使用命令运行Docker守护进程:

docker -d

但是我在控制台中收到:

unknown shorthand flag: 'd' in -d

我该如何运行Docker守护进程?


这可能会对您有所帮助 https://github.com/docker/for-win/issues/155 - Deepak Kabbur
docker 是客户端,而不是服务器(守护进程)。守护进程的名称通常以 d 结尾(当然是来自 "daemon")。 - axiac
5个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
30

如果您停止了服务,您需要以下命令来重新启动它:

$ sudo service docker start   # for work with SysVinit
$ sudo systemctl start docker # for work with Systemd

同时,若要再次停止,您可以使用:

$ sudo service docker stop   # for work with SysVinit
$ sudo systemctl stop docker # for work with Systemd

13

我认为问题是如何在分离模式下运行Docker并连接回来,假设有一个Ubuntu镜像可以尝试这样做:

sudo docker run -it -d --name myubdocker ubuntu:latest bash

它将会分离Docker,当你尝试这样做时,可以看到它在运行。

sudo docker ps
现在要如何重新连接到相同的Docker,可以通过以下命令实现(CONTAINERID将在执行docker ps时列出)。

现在要如何重新连接到相同的Docker,可以通过以下命令实现(执行docker ps命令后会列出CONTAINERID)

sudo docker exec -it <CONTAINERID> bash

这将提供一个根命令提示符(可以键入“exit”再次连接)


11
我花了几个小时尝试找出为什么我不能在我的ArchLinux环境中运行Docker容器。上面列出的解决方法对我没有用。

结果,我不得不运行dockerd守护程序,这是一个“管理容器的持久进程”。您可以在此处阅读更多信息

这些命令适合我:

  1. $ sudo dockerd

  2. $ sudo dockerd &

    • dockerd守护程序作为后台进程运行(更有用)

这些命令对我没用:

  1. $ sudo service docker start$ sudo service docker restart

  2. $ sudo systemctl start docker

我希望这可以帮助其他遇到类似问题的人。


正确的命令应该是:sudo service docker start。最后两个单词颠倒了。 - user3435121
我在使用Manjaro(基于Arch的Linux),这个答案让我省了你花费的数小时。+1. 另外,它必须以root用户身份启动,sudo dockered是一种可行的方法,但这是可以理解的。 - abhishah901
当您想要停止使用Docker时,应该使用哪个命令? - abhishah901
感谢您的建议。我已经修正了错别字。 - Adithya Upadhya

9

-d标志与docker run命令一起使用,以分离模式运行容器。

您要查找的可能是docker-machine start

docker-machine start [arg...]

此命令以一个或多个机器名称作为参数启动一台机器。例如:

$ docker-machine start dev

我编辑了答案,避免使用外部内容,请参见https://stackoverflow.com/help/how-to-answer。 - GGO

6
在Manjaro中,我使用以下方法成功了:
$ sudo systemctl start docker
$ sudo systemctl enable docker

P.S.
这也适用于使用systemd的其他Linux发行版。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,