第一章 Docker介绍与安装

1-1 Docker介绍与体系结构

Docker是应用容器引擎,对应用进程进行隔离封装,且独立于宿主机与其他进程,这种运行时封装的状态成为容器。

Docker包括文件系统、网络互联、镜像管理等方面,极大简化了容器管理。0.7版本以后去除LXC,转为自行研发的libcontainer,1.11版本开始,进一步演变为使用runCcontainerd

Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意linux发行版Docker引擎上。程序时间互相隔离。

 

Docker的体系结构

333.png

Containerd:是一个简单的守护进程,使用runC容器管理。向Doker Engine提供接口

Shim:只负责管理一个容器

RunC:是一个轻量级的工具,用来运行容器。


1-2 Docker内部组件、虚拟机与容器区别

内部组件:

Namespaces:命名空间,linux内核提供的一种对进程资源隔离的机制,例如进程、网络、资源挂载点等。

CGroups:控制组,linux内核提供的一种限制进程资源的机制;例如CPU、内存等

UnionFS:联合文件系统,支持讲不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型。

 

虚拟机与容器的区别:

444.png

KVM举例,与Docker对比

启动时间:

Docker秒级启动,KVM分钟级启动。

轻量级:

容器镜像大小通常以M为单位,虚拟机以G为单位。

容器资源占用小,要比虚拟机部署更快速。

性能:

容器共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,容器性能基本接近物理机。

虚拟机需要Hypervisor层支持,虚拟化一块设备,具有完整的OS系统,虚拟化开销大,因而降低性能。

安全性:

由于共享宿主机内核,只能进程级隔离,因此隔离性和稳定性不如虚拟机,容器具有一定权限访问宿主机内核,存在一定安全隐患。

 

1-3 linux安装Docker

安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

添加Docker软件包源

yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
vi /etc/yum.repos.d/docker-ce.repo
[docker-ce-stable]
gpgcheck=0 #改成0。信任源,不对它的rpm检查

更新yum包索引

yum makecache fast

安装Docker CE

yum -y install docker-ce

启动Docker/卸载

systemctl start docker
卸载:
yum remove docker-ce
rm -rf /var/lib/docker



猜你喜欢

转载自blog.51cto.com/eric1/2173852