Docker概念

允我心安 提交于 2020-01-18 14:48:15

一、Docker简介

1. 解决了什么问题

解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

2. 优势

虚拟机缺点:占用资源多、冗余步骤多、启动慢。
容器内的应用直接运行于宿主机的内核,容器没有自己的内核
每个容器互相隔离,且都有自己的文件系统,不会相互影响,能区分计算资源。

3. 三大特征

仓库、镜像、容器。

仓库是集中存放镜像的场所。
容器是用镜像创建的运行实例。
ps: 仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放多个仓库,每个仓库又包含了多个镜像,每个镜像有不同的标签(tag)。

4. 支持CentOS版本

CentOS6.5 (64-bit) 或更高

# 查看虚拟机内核
uname -r

二、Docker安装

1. 安装docker

yum -y install docker

2. 配置国内镜像(网易云)

vi /etc/docker/daemon.json
{
  "registry-mirrors" : ["http://hub-mirror.c.163.com"]
}

三、Hello World

由于本地没有hello-world这个镜像,所以会在Docker仓库中下载一个hello-word镜像,并在容器内运行

docker run hello-world

四、底层原理

  1. Docker是怎样工作的
    Docker是一个Client-Server结构的系统,Docker守护运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器是一个运行环境。
  2. 为什么Docker比VM快
    ① Docker有更少的抽象层,不需要Hypervisor实现硬件虚拟化,运行在Docker容器上的程序直接使用实际物理机的硬件资源。
    ② Docker利用宿主机的内核,而不需要Guest OS。因此当新建一个容器时,Docker不需要像虚拟机一样重新加载一个操作系统内核。

五、 Docker镜像加载原理

Docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。

  • bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
  • rootfs (root file system) ,在bootfs之上。包含的就是典型 Linux 系统中的 /dev, /proc, /bin, /etc 等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!