Docker容器的启动过程(七)

当我们输入下面这行命令,启动一个ubuntu容器时,到底发生了什么?

docker run -i -t ubuntu /bin/bash

大致过程可以用下图描述:
在这里插入图片描述
首先系统要有一个docker daemon的后台进程在运行,当刚才这行命令敲下时,

  1. docker client(即:docker终端命令行)会调用docker daemon请求启动一个容器,

  2. docker daemon会向host os(即:linux)请求创建容器

  3. linux会创建一个空的容器(可以简单理解为:一个未安装操作系统的裸机,只有虚拟出来的CPU、内存等硬件资源)

  4. docker daemon请检查本机是否存在docker镜像文件(可以简单理解为操作系统安装光盘),如果有,则加载到容器中(即:光盘插入裸机,准备安装操作系统)

  5. 将镜像文件加载到容器中(即:裸机上安装好了操作系统,不再是裸机状态)

最后,我们就得到了一个ubuntu的虚拟机,然后就可以进行各种操作了。

如果在第4步检查本机镜像文件时,发现文件不存在,则会到默认的docker镜像注册机构(即:docker hub网站)去联网下载,下载回来后,再进行装载到容器的动作,即下图所示
在这里插入图片描述
另外官网有一张图也很形象的描述了这个过程:
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在使用docker-compose进行容器部署时,可以通过使用depends_on配合健康检查healthcheck来控制容器的启动顺序。 depends_on参数可以指定一个或多个服务名称,表示需要先启动这些服务后才能启动当前的服务。健康检查healthcheck可以用来确定一个服务是否已经启动完成,只有当依赖的服务处于健康状态时,才会启动当前的服务。这样可以确保在分布式项目部署中,各个服务按照指定的顺序启动,避免启动失败或出现依赖关系问题。通过配置docker开机自启以及控制启动脚本的执行顺序,可以实现在服务器重启后,docker及所有容器能够自动恢复使用,并且在启动过程中按照需要的顺序启动各个服务。123 #### 引用[.reference_title] - *1* *3* [docker-compose 如何安排容器启动的顺序](https://blog.csdn.net/xiaojinran/article/details/127616543)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* [超简单实用docker设置容器启动顺序](https://blog.csdn.net/qq_51252433/article/details/125655068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值