一、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
四、底层原理
- Docker是怎样工作的
Docker是一个Client-Server结构的系统,Docker守护运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器是一个运行环境。 - 为什么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等等。
来源:CSDN
作者:KeithRong
链接:https://blog.csdn.net/weixin_42103026/article/details/104027097