docker compose 在底层是如何工作的?

Ada*_*old 3 multiprocessing docker docker-compose

究竟是如何docker-compose工作的?文档只提到并行运行多个服务,没有提到如何. 我知道图像是构建和运行的,但它们如何并行运行?

它是否类似于Supervisor,它在不同的操作系统进程中运行其每个服务?是否所有服务都包装在一个容器中?

幕后如何处理?

运行docker-compose up --verbose只显示以下内容,我不确定这意味着什么:

compose.parallel.feed_queue: Starting producer thread for <Service: web>
Run Code Online (Sandbox Code Playgroud)

Sha*_*k V 5

docker-compose为每个服务创建 docker 容器。它类似于使用docker rundocker-compose.yml 文件中提到的每个服务的命令手动创建容器。

它还做一些额外的事情,例如创建网络并将所有容器加入网络,可选择从 dockerfile 等构建图像。

  • 你从哪里得到“并行”的东西?Compose 只是创建并启动容器。这些容器与您手动配置和启动它们时的运行方式没有什么不同。它的工作不是“并行”运行容器,而是用于使用单个命令启动“多个”容器。 (2认同)
  • 我认为您对“容器”的含义感到困惑。容器只是一堆在自己的内核命名空间中运行的进程(通常只有一个),因此与主机上的其他进程和其他容器中的进程隔离。我强烈建议观看此视频 - [Cgroup、命名空间及其他:容器是由什么制成的?](https://www.youtube.com/watch?v=sK5i-N34im8) (2认同)