在守护进程模式下运行Docker

我发布了这个命令

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 

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

任何解决scheme?

不知道为什么docker变得如此复杂的初学者:)

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

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

一旦你编辑了这个文件,你现在应该重新启动你的d​​ocker守护进程:

 sudo service docker restart 

或者如果你使用systemd:

 sudo systemctl restart docker.service 

另外,您遇到的主要问题是在terminal内部运行守护进程。 将来,请查看nohup命令,在terminal内部运行进程,并在closuresterminal后保持该进程。 你可以阅读更多的man nohup