Docker三个基本概念
Docker包含三个基本概念,容器Container、镜像Image、仓库Registry
- Container是一个与宿主主机隔离“容器”,容器与宿主主机之前可以进行通信;
- Image: Docker中镜像是分层可复用的;
- Repository: Docker仓库与我们通常使用的Git仓库类似;
什么是Docker
容器,开源的应用容器引擎,主要解决环境配置问题;
Docker是一个镜像格式,一系列标准操作,一个执行环境;Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个横型运用到自己的设计中,唯一不同的是:集装箱运输货物,而Docker运输软件;
Docker在执行运输操作时,并不关心容器中到底装了什么,它不管是web服务器,还是数据库,或者是应用程序服务器什么的。所有的容器都按照相同的方式将内容装载进去;
Docker也不关心你要把容器运到哪里:我们可以在自己的笔记本中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主机中;
镜像与容器
镜像是构建Docker的基石,用户基于镜像来运行自己的容器;镜像也是Docker容器生命中的“构建”部分,镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来;
镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。容器基于镜像启动,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件或者服务。
Docker Registry
一个registry是一个存储和内容交付系统,其中维护着若干命名的Docker镜像,这些镜像有不同的标记版本,我们可以理解为一个本地版本的docker hub,即一个私有仓库,在使用docker的过程,我们经常会使用docker pull从云端拉取image镜像资源到本地,比如我们现在需要一个mysql,就可以使用以下命令拉取:
//拉取mysql镜像
docker pull centos/mysql-57-centos7
Docker 特点
-
隔离性
-
安全性
-
可度量性
-
移植性
Docker 优点
- 简化程序
Docker可以帮助你构建和部署容器,我们只需要把自己的应用程序或者服务打包放进容器即可;
- 节省部署成本
在应用容器之前,我们部署项目或构建服务,需要提供一台服务器或是搭建一台虚拟机,设备的购置成本以及部署的运维成本相对都比较高,而docker容器较小巧轻便,容器中可以运行一个或多个进程;
DockerFile
是什么?
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像;
有什么作用
- 对于开发人员:可以为开发团队提供一个完全一致的开发环境;
- 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作
- 对于运维人员:在部署时,可以实现应用的无缝移植