Docker Start命令流程分析

简介: 首先说明一下在控制台输入docker start命令后的主要流程。

首先说明一下在控制台输入docker start命令后的主要流程:

  1. postContainersStart (api/server/router/container_routes)
  2. ContainerStart (daemon/start.go)

    1. GetContainer #根据名字获取景象
    2. validateState #检查container的状态
    3. daemon.containerStart # 进行请求

      1. container.Lock() #上锁
      2. daemon.conditionalMountOnStart

        #待补充详细过程

      3. daemon.initializeNetworking #(daemon/container_operations) #初始化网络

        在这里,网络模式有containerhostdefault模式

        1. if IsContainer #如果网络模式是container,需要获取需要加入容器的网络配置
        2. if IsHost #如果网络模式是host,hostName设置成主机名字,网络配置与宿主机相同
      4. daemon.createSpec (daemon/oci_linux.go) #应该是设置具体性能配置的,比如cpu速率等
      5. daemon.getLibcontainerdCreateOptions #得到创建容器的选择,应该是启动容器时,需要在容器内执行的命令
      6. daemon.containerd.Create (libcontainerd/client_daemon) #创建啥玩意
      7. daemon.containerd.Start (libcontainerd/client_daemon) #启动啥玩意
      8. container.SetRunning #设置容器的状态为running
      9. daemon.setStateCounter #设置daemon的计数
      10. daemon.initHealthMonitor #初始化容器监控
      11. daemon.LogContainerEvent #日志记录容器启动

相关文章
|
8天前
|
安全 Docker 容器
|
8天前
|
网络安全 数据安全/隐私保护 Docker
|
7天前
|
存储 监控 安全
|
7天前
|
存储 关系型数据库 MySQL
|
15天前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
314 0
|
16天前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
109 0
|
22天前
|
Linux 网络安全 Docker
安装后无法使用 Docker 命令
【10月更文挑战第3天】
70 2
|
11天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
32 5
|
5天前
|
Web App开发 iOS开发 Docker
Docker 容器的日志
【10月更文挑战第31天】
16 5
|
4天前
|
存储 Kubernetes C++
Kubernetes VS Docker Swarm:哪个容器编排工具更适合你?
随着容器技术的快速发展,容器编排工具成为了现代软件开发和运维的重要环节。在众多容器编排工具中,Kubernetes和Docker Swarm无疑是最受欢迎的两个。本文将从技术特性、易用性和社区支持三个方面,对Kubernetes和Docker Swarm进行比较,以帮助您选择更适合您需求的容器编排工具。
19 3