使用Docker时共享主机操作系统内核

使用Docker时共享主机操作系统内核,docker,operating-system,containers,Docker,Operating System,Containers,如果我在我的Ubuntu机器上(作为安装Docker的主机操作系统)部署一个通过选择Alpine Linux作为基础映像构建的映像,这里会有两个内核在运行吗?一个来自Ubuntu,另一个来自Alpine?我读到Docker容器将共享主机内核,所以我在这里有点困惑 如果我登录到一个正在运行的容器并发出另一个命令,从主机操作系统的角度来看,这是另一个进程吗?或者这是另一条线?从来宾操作系统的角度来看,我认为这将是两个独立的进程 请澄清 它们共享您的主机内核。Docker只是将一组进程隔离到一个容器中

如果我在我的Ubuntu机器上(作为安装Docker的主机操作系统)部署一个通过选择Alpine Linux作为基础映像构建的映像,这里会有两个内核在运行吗?一个来自Ubuntu,另一个来自Alpine?我读到Docker容器将共享主机内核,所以我在这里有点困惑

  • 如果我登录到一个正在运行的容器并发出另一个命令,从主机操作系统的角度来看,这是另一个进程吗?或者这是另一条线?从来宾操作系统的角度来看,我认为这将是两个独立的进程

  • 请澄清

  • 它们共享您的主机内核。Docker只是将一组进程隔离到一个容器中

  • 没有来宾操作系统,只有一个容器。进程在docker容器中运行,就像它们在主机上运行一样。如果在主机上运行
    top
    ,您将看到docker容器中运行的所有进程都是任何给定容器的子进程

  • “容器”只是一个抽象术语。这只是在主机(Ubuntu)上运行的另一个进程。因为您的来宾(Alpine)和主机(Ubuntu)都是基于Linux内核的操作系统。在来宾操作系统中运行的任何命令或程序最终都会(通过低级库)转换为系统调用,并提供给Ubuntu主机的内核

  • “容器”只是一组进程,主机内核对其应用一些公共策略。因此,您在来宾操作系统中运行的任何命令或程序(您称之为)都将在主机上创建一个进程,其策略与您的容器中内核应用的策略相同