本系列相关学习资源来源于:

官网:https://docs.docker.com

git开源书《Docker — 从入门到实践》:https://github.com/yeasy/docker_practice

 

什么是docker

上图,docker是容器虚拟化技术,可以有多个容器(可以不同功能)且相互隔离,互不影响。容器没有自己的内核,直接运行于宿主主机的内核。似乎跟虚拟机有点像。

 

docker与虚拟机的区别

虚拟机:

虚拟机需要有自己完整的操作系统,故需要宿主主机提供资源虚拟出一套物理资源(Hypervisor层)供虚拟机使用,系统镜像往往较大,如标准的centos 7有4G多。

docker:

docker仅需要自身的应用和依赖库,直接运行在宿主主机上,不需要宿主主机提供虚拟的物理资源。且更加的轻量,一个小的镜像仅需要小几百MB。中间Docker引擎是否有点像java的虚拟机,docker镜像也支持跨平台,同一个镜像直接可以在Linux、Windows、mac宿主主机上运行

 

docker优势

  1. 主机资源利用率高(直接运行在宿主机内核,不需要硬件虚拟化)
  2. 启动时间快(docker秒级比虚拟机快太多,虚拟机自身加载操作系统)
  3. 运行环境一致性(将应用同依赖环境打包成一个镜像,避免多处部署不一致)
  4. 部署简单(作为开发人员,学一个新东西就要去搭一个环境,而官方提供了很多镜像可以直接使用,非常方便)

 

基本概念

镜像

镜像是一个模板。

容器

容器是由镜像创建出来,一个镜像可以创建出多个相同的容器实例,每个容器为独立的应用进程。容器可以进行编辑,重新打包为镜像(创建镜像的一种方式,但一般不这么做)。

仓库

存在镜像的仓库,有远程仓库、有本地仓库。如同git。官网的镜像仓库:https://hub.docker.com/  阿里云镜像仓库:https://cr.console.aliyun.com/cn-hangzhou/images

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐