Docker Start命令流程分析
奈良佳晴子 2018-08-10 11:42:45 浏览1062 评论0摘要: 首先说明一下在控制台输入docker start命令后的主要流程。
首先说明一下在控制台输入docker start命令后的主要流程:
- postContainersStart (api/server/router/container_routes)
-
ContainerStart (daemon/start.go)
- GetContainer #根据名字获取景象
- validateState #检查container的状态
-
daemon.containerStart # 进行请求
- container.Lock() #上锁
-
daemon.conditionalMountOnStart
#待补充详细过程
- daemon.initializeNetworking #(daemon/container_operations) #初始化网络
在这里,网络模式有
container,host,default模式- if IsContainer #如果网络模式是
container,需要获取需要加入容器的网络配置 - if IsHost #如果网络模式是
host,hostName设置成主机名字,网络配置与宿主机相同
- if IsContainer #如果网络模式是
- daemon.createSpec (daemon/oci_linux.go) #应该是设置具体性能配置的,比如cpu速率等
- daemon.getLibcontainerdCreateOptions #得到创建容器的选择,应该是启动容器时,需要在容器内执行的命令
- daemon.containerd.Create (libcontainerd/client_daemon) #创建啥玩意
- daemon.containerd.Start (libcontainerd/client_daemon) #启动啥玩意
- container.SetRunning #设置容器的状态为running
- daemon.setStateCounter #设置daemon的计数
- daemon.initHealthMonitor #初始化容器监控
- daemon.LogContainerEvent #日志记录容器启动
【云栖快讯】你想见的Java技术专家都在这了,向大佬提问,有问题必答 详情请点击 评论 (0) 点赞 (1) 收藏 (0)
相关文章
- 《容器技术系列》一1.4 Docker运行案例分析
- Docker
- docker1.12-containerd源码分析
- 威胁情报| DockerKiller:首个针对Docke…
- docker学习 - docker run
- 《容器技术系列》一导读
- 关于Docker在测试方面的应用
- 解密EDAS新一代应用发布系统
- 在 Docker 上建立多节点的 Hadoop 集群 【…
- 《容器技术系列》一3.3 mainDaemon()的具体…