2016-07-14 85 views
1

据我了解,Docker容器没有init系统,它们只运行在Dockerfile的CMD部分中指定的任何内容。在Docker容器下做什么是/ usr/sbin /服务

然而,(例如在FROM ubuntu:16.04)当我做/usr/sbin/service --status-all我得到一个服务列表,就像在一个真正的Ubuntu系统。

这些服务在做什么?它只是一个剩余的,他们实际上没有做任何事情?

回答

1

Upstart/service只是查看/etc/init.d,它由包安装程序填充。 Docker没有修改这些。您可以使用service命令手动产生进程,但是如果没有运行init,操作系统将不会产生所有典型进程。一旦你产生了一个进程,你仍然需要保持你的pid 1运行,以避免容器退出。容器的典型设计是只运行一个应用程序,这需要在前台运行,绕过Upstart/service和init。