Docker容器作为Linux服务?

我刚刚创build了一个安全的Docker Registry,并在远程VM上运行它(使用docker run ... )。 然后我运行docker ps ,发现它实际上正在运行。 我退出机器,然后SSH回来了。再次,我跑docker ps和validation“幸存”我退出SSH会话。

这让我想知道: Docker容器实际上是作为Linux服务运行的吗? 如果没有,有没有办法让他们像传统(基于upstart或基于systemd的)服务一样运行? 这样做有什么理由/价值吗?

docker引擎作为守护进程运行。
在“ 主机整合 ”中提到:

从Docker 1.2开始, 重新启动策略是内置的Docker机制,用于在容器退出时重新启动容器。 如果设置,当Docker守护程序启动时将使用重新启动策略,通常在系统引导之后发生。 重新启动策略将确保链接的容器以正确的顺序启动。

如果重新启动策略不适合您的需要(即,您有非Docker进程依赖于Docker容器),则可以使用像upstartsystemdsupervisor这样的进程pipe理器。


这涉及到(当一个容器运行时有一些选项)顺便说一下安全问题 :参见issue 14767和issue 6401 :

容器(带--net host选项)是networking堆栈中的主机,因此主机上运行的任何服务都可以被容器访问。 恰巧你以这种方式与新贵(和其他人)沟通。

此function是仅限运行时的选项,就像--privileged标志一样,因此图像不能请求这个选项,必须在运行时明确设置。