`
sunbin
  • 浏览: 353043 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

docker学习(3) 容器的启动过程

 
阅读更多

这一节我们来稍微了解下docker原理性的东西

1
docker run -i -t ubuntu /bin/bash

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

大致过程可以用下图描述:

首先系统要有一个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网站)去联网下载,下载回来后,再进行装载到容器的动作,即下图所示

另外官网有一张图也很形象的描述了这个过程:

参考文章:

https://www.gitbook.com/book/joshhu/docker_theory_install/details

https://docs.docker.com/engine/introduction/understanding-docker/

分享到:
评论

相关推荐

    深度学习clip-interrogator clip docker 容器启动过程

    【深度学习】clip-interrogator clip docker 容器启动过程

    Docker学习之CentOS 7安装配置

    Docker学习之CentOS 7安装配置 Docker 是一个开源工具,可以让创建和管理 Linux 容器变得简单。容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用...

    自己整理的docker学习笔记

    对于初学者而言,了解Docker的基本命令是学习过程中的重要一步。例如,`docker version`命令用于验证Docker客户端和守护进程是否安装成功并运行。而`docker run`命令则是用来运行容器的。在使用Docker之前,一般需要...

    SpringCloudAlibaba微服务docker容器打包和部署示例实战.doc

    Docker Compose 文件可以存储应用程序的容器配置信息、依赖关系和启动命令等信息。使用 Docker Compose 文件可以帮助开发者快速定义和部署多容器应用程序。 本篇文章详细讲解了如何使用 SpringCloudAlibaba 框架...

    Docker容器应用日志查看方法

    不过需要注意的是,`docker attach`只是进入容器终端,并不会启动新的进程。如果在连接过程中使用了`ctrl+c`,这会导致容器退出,而且还会stop容器。因此,如果想要在断开连接后容器继续运行,可以使用`--sig-proxy=...

    掌握Docker容器管理:优雅地停止和删除的艺术

    - **运行**: 容器启动后即进入运行状态。 - **停止**: 使用适当的命令安全地停止容器,以避免数据丢失或服务中断。 - **删除**: 清理不再需要的容器,释放资源。 #### 如何停止 Docker 容器 1. **优雅停止**: - ...

    Docker教程合集.pdf

    3. **程序的高可移植性**:由于 Docker 容器化了应用程序及其依赖,程序可以在任何支持 Docker 的平台上运行,无论是在公有云、私有云还是本地服务器,保持一致的行为。这极大地提高了软件的可移植性和部署的灵活性...

    docker + pycharm+GPU 远程开发配置环境教程.pdf

    * 容器管理包括容器的创建、启动、停止和删除等操作。 * 容器可以理解为一个系统的安装包,可以理解为一个开机的系统。 五、Docker + PyCharm 配置 GPU 远程开发环境 * 使用 Docker 可以轻松地搭建 GPU 远程开发...

    西南科技大学竞赛与实践实验四云原生系统DOCKER中容器系统搭建pdf

    1. 学习和掌握Docker容器的基本工作原理。 2. 掌握在Ubuntu系统中Docker容器的创建与基本操作。 【实验设计】: 实验主要分为三个部分:Docker的安装、设置管理员权限以及容器的创建、启动和互联。 1. Docker安装...

    2021-12-011学习记录(docker安装)1

    在本节中,我们将学习 Docker 的安装过程和基本概念。Docker 是一个容器化平台,允许开发者在容器中打包、ship 和运行应用程序。下面是 Docker 安装和基本概念的知识点: Docker 安装 在CentOS 系统上安装 Docker ...

    Docker学习笔记

    ### Docker学习笔记 #### Docker简介 Docker 是一种开源的应用容器引擎,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱...

    docker配置使用,很值得学习的笔记

    Docker的配置和使用涉及到多个方面,包括安装Docker、管理镜像、运行容器、配置网络和数据卷等。...使用docker run命令基于镜像创建并启动一个新的容器。 查看运行中的容器: 使用docker ps命令列出正在运行的容器。

    Docker修改数据目录及相关配置.docx

    3. 安装完成后,启动Docker服务,使用命令`systemctl start docker`。 4. 要确保Docker在系统启动时自动运行,可以执行`systemctl enable docker`。 在安装Docker后,可能需要对其进行配置,特别是当你发现默认的...

    ubuntu离线安装nvidia-docker2

    安装完`nvidia-docker2`后,还需要启用NVIDIA Docker插件,并通过`docker run`命令使用`--gpus all`选项来启动一个带有GPU支持的容器。 总的来说,离线安装`nvidia-docker2`是一个涉及文件解压、目录切换和DEB包...

    DockerToolBox安装步骤.pptx

    随着容器技术的不断发展,Docker作为其中的佼佼者,已经被广泛应用于软件开发、测试和部署等多个环节。对于Windows用户而言,通过DockerToolBox安装Docker是一种简单且有效的方法。本文档将详细介绍在Windows环境下...

    docker deep dive

    Docker技术使得应用可以被打包、分发和部署在隔离的容器中,与虚拟机相比,容器更加轻量级,能够更快启动并更有效地利用系统资源。 对于读者可能提出的疑问,比如"我为什么要读这本书,或者为什么我应该关心Docker...

    docker离线安装包

    接下来是描述"Docker学习(3)-CentOS安装Docker及Docker-Compose",这意味着我们将同时安装Docker引擎和Docker Compose两个组件。Docker引擎是容器化的基础,而Docker Compose则是一个用于定义和运行多容器Docker...

Global site tag (gtag.js) - Google Analytics