1 什么是Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
2 容器和虚拟机的对比
虚拟机:
传统虚拟机如 VMware , 需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,
虚拟机一旦被开启,预分配给它的资源将全部被占用。
每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。
容器:
容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。
容器在宿主机操作系统中,在用户空间以分离的进程运行。
容器技术是实现操作系统虚拟化的一种途径,可以让您在资源受到隔离的进程中运行应用程序及其依赖关系。通过使用容器,我们可以轻松打包应用程序的代码、配置和依赖关系,将其变成容易使用的构建块,从而实现环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。容器可以帮助保证应用程序快速、可靠、一致地部署,其间不受部署环境的影响。
传统虚拟化与容器技术对比:
3 容器是如何进行工作的?
上图是容器工作的一般过程,大概可以简述为:当客户端发出一个命令,容器引擎(Docker daemon)接受到这个命令后,先检查是否本地是否有客户端需要的镜像(Images),如果本地存在该镜像,那么就利用该镜像来创建容器(Containers);如果本地没有需要的镜像,那么就从远端仓库(Registry)去下载该镜像,然后再创建容器。
4 部署Docker
实验环境
一台虚拟机(可以访问外部互联网,并且配置好本地yum仓库),接下来实验中用到的是rhel7.6版本的虚拟机
关闭selinux服务和防火墙(firewalld)=服务
步骤一:从阿里云镜像站中获取docker-ce的镜像资源
-
首先在阿里云镜像站中找到docker-ce
-
找到CentOS7的安装方法
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #下载docker-ce.repo这个yum源
步骤二:安装docker-ce,并且解决依赖性
- 查看一下前一步下载好的docker-ce yum源,对其内容做修改
vim docker-ce.repo
删除多余的仓库,留下一个比较稳定的,并修改gpgcheck=0
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
yum repolist #检测一下docker-ce这个源
- 安装docker-ce,并解决依懒性
yum install docker-ce container-selinux-2.77-1.el7.noarch.rpm -y
这个container-selinux的包同样可以在阿里云镜像站中找到,这个是解决安装docker-ce时依赖性的rpm包
- 开启docker服务
systemctl start docker
systemctl status docker
步骤三:配置镜像加速器
如果不配置镜像加速器,我们在拉取远端的服务或者应用时,下载速度非常慢
- 我们仍然是从阿里云镜像站中找镜像加速器,只不过需要注册登录阿里云镜像站,每个登录的账号将有一个专属的加速器地址
cd /etc/docker
vim daemon.json
在daemon.json中写入加速器的地址
{
"registry-mirrors": ["https://6vnrsgpm.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker
docker info #查看docker的相关信息
这样我们就成功的安装了docker