专栏首页菩提树下的杨过docker学习(3) 容器的启动过程

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

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

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/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • docker学习(1) 安装

    docker是啥就不多讲了,简言之就是更轻量、更牛叉的新一代虚拟机技术。下面是安装步骤: 一、mac/windows平台的安装 docker是在linux内核基...

    菩提树下的杨过
  • docker学习(4) 一些常用操作

    继续docker的学习之旅,今天练习一些常用的命令: 一、镜像相关 1.1 列出本机所有镜像 docker images ? 后面的操作,都以ubuntu做为练...

    菩提树下的杨过
  • docker学习(2) mac中docker-machine使用vmware fusion以及配置国内镜像加速

    一、前言 先回顾下上一节创建docker-machine的过程,默认情况下docker toolbox中的docker-machine使用virtual box...

    菩提树下的杨过
  • docker2 Docker的daemon.json的作用

    docker安装后默认没有daemon.json这个配置文件,需要进行手动创建。配置文件的默认路径:/etc/docker/daemon.json

    用户1499526
  • Docker 的简单使用

    指定容器名称、挂载本地目录、添加端口等(将本机 E:\php\Code 目录 挂载带容器中,并对应 80 端口访问)

    hedeqiang
  • 使用docker时出现tls timeout

    本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/tls-timeout-docker/

    羽翰尘
  • Centos docker卸载

    问天丶天问
  • docker使用笔记

    1)mkdir /etc/systemd/system/docker.service.d

    用户1396155
  • docker 入门与安装

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括...

    付威
  • docker常用命令

    更新 : @snakeliwei 的提醒, 现在的docker有了专门清理资源(container、image、网络)的命令。 docker 1.13 中增加了...

    用户1437675

扫码关注云+社区

领取腾讯云代金券