Docker 内部组件协作原理

本文深入探讨了Docker容器的创建过程,包括CLI的`docker create`和`docker run`命令,以及Docker Daemon如何通过API创建和启动容器。内容涉及源码分析,揭示了Docker如何处理参数、拉取镜像、调用containerd和runc启动容器。
摘要由CSDN通过智能技术生成

本篇是专栏第四部分“架构篇”的第四篇,前面三篇内容,我为你介绍了 Docker 的核心组件及其相关功能。本篇,我们从容器创建的角度来看看 Docker 内部这些组件之间协作的原理。

经过前面内容的学习,想必你已经对 Docker 的核心组件有了一些认识。本篇我们从容器创建的角度,来看看 Docker 的这些组件是如何协作的。本篇使用 Docker CE v19.03.5 的源码进行介绍。

CLI 创建容器

在本课程的第一部分,我们已经知道了创建容器有两种方式:

  • 使用 docker create 创建 Created 状态的容器,之后再通过 docker start 来运行容器;
  • 使用 docker run 创建并运行容器。

我们从 Docker CLI 入手,分别看看这两个命令之间的差别。

docker create

它的入口函数是 runCreate,处理逻辑分以下几步:

  • 解析 CLI 的配置文件,默认是 $HOME/.docker/config.json,看其中是否有配置 proxy 相关的参数,如果有则记录下来,如果没有则跳过进入后续流程;
  • 解析通过 dock
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张晋涛-MoeLove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值