以守护进程模式运行Docker

时间:2016-03-13 11:34:57

标签: docker daemon docker-registry

我发出了这个命令

sudo docker daemon -H unix:///var/run/docker.sock -H tcp:// xxxx:8400 -H tcp:// yyyyy:2375&

工作正常。但它没有返回我的控制台客户端。它没有完成命令。

WARN[0000] /!\ DON'T BIND ON ANY IP ADDRESS WITHOUT setting -tlsverify IF YOU DON'T KNOW WHAT YOU'RE DOING /!\ 
WARN[0000] /!\ DON'T BIND ON ANY IP ADDRESS WITHOUT setting -tlsverify IF YOU DON'T KNOW WHAT YOU'RE DOING /!\ 
INFO[0000] [graphdriver] using prior storage driver "aufs" 
INFO[0000] Graph migration to content-addressability took 0.00 seconds 
INFO[0000] Firewalld running: false                     
INFO[0000] Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address 
WARN[0000] Your kernel does not support swap memory limit. 
INFO[0000] Loading containers: start.                   
.
INFO[0000] Loading containers: done.                    
INFO[0000] Daemon has completed initialization          
INFO[0000] Docker daemon                                 commit=20f81dd execdriver=native-0.2 graphdriver=aufs version=1.10.3
INFO[0000] API listen on 172.31.16.21:2375              
INFO[0000] API listen on /var/run/docker.sock           
INFO[0000] API listen on 172.31.16.21:8400 

这次我可以从外面的客户端访问它。但如果杀了那个控制台。我无法从外部客户端访问它。

任何解决方案?

不知道为什么码头工人为初学者变得如此复杂:)

1 个答案:

答案 0 :(得分:3)

在我说什么之前,我需要警告你不要像这样运行Docker守护进程,监听TCP连接而不是Unix文件套接字连接。你可能不会听我的,但是当你有时间的时候,你应该阅读我要链接的文档中的警告,因为它很危险。所以,无论如何......当你应该更改docker的初始化选项时,你正在运行一个docker守护进程。 The documentation详细说明了您应该编辑哪个文件以更改Docker守护程序的配置。 请注意,运行命令和配置文件中的重复选项将意味着守护程序无法启动。因此,如果您更改了daemon.json文件并尝试使用这些文件运行守护程序命令行选项,您的服务器将忽略它们。要编辑的文件是/etc/docker/daemon.json,您应该在其中设置这些选项:

{
  hosts: [
    'unix:///var/run/docker.sock',
    'tcp://xxxx:8400',
    'tcp://yyyyy:2375'
  ]
}

编辑完该文件后,您现在应该重新启动docker守护程序:

sudo service docker restart

或者,如果您正在使用systemd:

sudo systemctl restart docker.service

您遇到的核心问题还与在终端内运行守护程序进程有关。将来,请查看nohup命令,以便在终端内运行进程并在关闭终端后保持活动状态。您可以在man nohup了解更多信息。