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容器),则可以使用像
upstart
,systemd
或supervisor
这样的进程pipe理器。
这涉及到(当一个容器运行时有一些选项)顺便说一下安全问题 :参见issue 14767和issue 6401 :
容器(带
--net host
选项)是networking堆栈中的主机,因此主机上运行的任何服务都可以被容器访问。 恰巧你以这种方式与新贵(和其他人)沟通。此function是仅限运行时的选项,就像
--privileged
标志一样,因此图像不能请求这个选项,必须在运行时明确设置。