了解docker容器进程

时间:2018-05-30 20:47:47

标签: docker process

很抱歉,如果这是一个愚蠢的问题,但是:

我来自vagrant,我们在每台机器上都有一个功能齐全的操作系统,运行ps -aux我们可以看到操作系统进程和我们的服务(我在某种程度上知道在VM和Docker中运行的应用程序之间的区别)

然后我使用docker-compose构建了一些容器,并使用bash(基于debian:jessie图像)登录到容器中。运行ps -aux后,我只能看到我安装的服务,而不是单个操作系统的进程。为什么?他们在哪里?这是如何工作的?

Docker有一个运行容器的虚拟机,每个容器可能基于不同的分布,因此,操作系统也是容器化的,这就是主机的底座操作系统(VM)的事实吗?

1 个答案:

答案 0 :(得分:1)

  

Docker有一个运行容器的VM

不,容器不是虚拟机(docker包含用于桌面版本的虚拟机,但不是容器,并且有虚拟机运行时,但这不是传统的容器)。

容器是一种将正在运行的应用程序与内核命名空间隔离开来的方法,例如文件系统,pids和网络。它们都运行在同一个内核中。为Alpine,Ubuntu等提取基本映像,可以为您提供基本文件系统,库,包管理器,而不是内核。在容器内启动的唯一进程是您的应用程序,当您的应用程序退出时,容器也是如此。因此,您不会看到OS实用程序正在运行。

另见this answer