当前位置: 首页 > 知识库问答 >
问题:

了解docker容器进程

夏侯枫
2023-03-14

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

我来自vagrant公司,在那里我们的每台机器中都有一个功能齐全的OS,在那里运行ps-aux我们可以看到OS进程和我们的服务(我在一定程度上知道在VMs和Docker中运行的应用程序之间的区别)。

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

Docker有一个容器在其中运行的VM,每个容器可能基于不同的发行版,那么,OS是否也是容器化的,给出了Docker的主机OS(VM)的事实?

共有1个答案

赫连飞沉
2023-03-14

Docker有一个运行容器的VM

不,容器不是VM(docker包含一个桌面版本的VM,但它不是一个容器,也有VM运行时,但它不是一个传统的容器)。

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

另见此答案

 类似资料:
  • 问题内容: 我对docker,redis和任何类型的网络都是陌生的(至少我了解python!)。首先,我想出了如何获取redis docker映像并在docker容器中运行它: 据我了解,此Redis实例具有可用于连接其他容器的端口6379。 如果运行以下命令,则可以与redis实例进行交互并生成key:value对: 我已经弄清楚如何制作并运行安装了redis库的docker容器,该容器将运行p

  • 本文向大家介绍容器Docker入门详解,包括了容器Docker入门详解的使用技巧和注意事项,需要的朋友参考一下 一、概述 1.1 基本概念: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相

  • 1、启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 1.1 新建并启动 所需要的命令主要为 docker run。 例如,下面的命令输出一个 “Hello World”,之后终止容器。 $ sudo docker run ubuntu:14.0

  • 本文向大家介绍Docker如何进入启动容器,包括了Docker如何进入启动容器的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Docker如何进入启动容器,分享给大家,具体如下: 在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。 这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。 1、at

  • 问题内容: 我有一个正在运行的Docker容器。我已经在运行的Docker容器中做了一些有用的工作。我已经完成了这些工作,而不是dockerfile的一部分,我已经在容器内完成了它。[例如:我已经在容器内安装了ping,而不是从docker文件中安装了ping] 现在,我被困在一个地方。我不确定是否要在同一个容器中进行调试,否则可能会使到目前为止在容器中所做的事情松懈。 因此,我想使用该运行容器中

  • 因此,我想用运行容器中的所有可用内容创建一个它的副本[就像我不想从image构建一个容器,重复运行容器中实现的所有重要步骤,然后开始调试一样。我不想在第二个容器中重新安装ping]。 完全如此,我如何复制一个容器?如果不是,所有的可能性是什么?