Docker简介
为什么需要Docker
在日常的开发过程中,我们作为一个开发人员,在自己的电脑上完成了项目的开发后会将项目打包后交付给运维人员,但因为项目有很多配置文件和依赖软件,此时运维人员如果想将项目部署在服务器上,不仅需要修改大量的配置文件,还需要下载一堆软件搭建项目的运行环境,还要注意每个软件的版本,这对运维人员来说实在是头痛。那么此时,我们开发人员需要清楚的告诉运维部署团队,用的全部配置文件+所有软件环境。不过,即便如此,仍然常常发生部署失败的状况。所以就出现了Docker,Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。
Docker理念
Docker是基于Go语言实现的云开源项目。
Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。像Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
容器和虚拟机的比较
-
传统虚拟机技术
传统的虚拟机技术是基于主操作系统创建虚拟机(虚拟出各种硬件),在虚拟机上安装从操作系统,在从操作系统中安装部署各种应用。这种技术的缺点就是 资源占用多、实现麻烦、启动慢。
-
容器虚拟化技术
Linux 容器不是模拟一个完整的操作系统而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。Docker容器实在操作系统层面上实现虚拟化,直接复用本地主机的操作系统
总结:
- 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程。
- 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便;每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。
Docker的基本组成
- 镜像:镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。
- 容器:独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创 建的运行实例。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。
- 仓库:仓库(Repository)是集中存放镜像文件的场所;类似于Maven仓库,存放各种jar包的地方。
总结:
Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。
Docker安装
Docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。Docker实质上是在已经运行的Linux下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的Linux;因此,Docker必须部署在Linux内核的系统上。如果其他系统想部署Docker就必须安装一个虚拟Linux环境。
本次安装基于Centos7。
安装步骤
-
卸载旧版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-
安装gcc
yum -y install gcc yum -y install gcc-c++
-
安装需要的软件包
yum install -y yum-utils
-
设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
更新yum软件包索引
yum makecache fast
-
安装DOCKER CE
yum -y install docker-ce docker-ce-cli containerd.io
-
启动docker
systemctl start docker
-
测试
docker version
docker run hello-world
到这,Docker安装就成功了,下面就可以开始基本使用了。
配置阿里云镜像加速
上面安装完Docker后,日后我们会经常从远程仓库上拉取镜像,如果直接拉取Docker官方仓库镜像的话,速度会比较慢,所以我们需要配置一下阿里云镜像加速。地址:https://promotion.aliyun.com/ntms/act/kubernetes.html
步骤:
-
注册一个属于自己的阿里云账户(可复用淘宝账号)
-
获得加速器地址连接
-
登录阿里云开发者平台
-
点击控制台
-
选择容器镜像服务
-
获取加速器地址
-
-
粘贴脚本直接执行
-
重启Docker
指令:
systemctl restart docker