docker学习
Docker解决的问题
- 部署流程反锁
- 环境不一致(开发、测试、预发布、线上)
- 资源隔离问题
- 交付流程复杂
Docker
核心概念
Docker(Moby)诞生于2013年,Docker公司后来分化为了两个版本Mobdy(Docker CE)和Docker(Docker EE)
容器
用于运行一个软件的容器,容器中包含了软件运行所需要的一系列依赖
容器引擎
Docker是一个容器引擎,用来管理容器的生命周期
镜像
容器的安装包,包含容器中需要的内容以及对应的配置信息。因此要运行一个容器必须先有一个镜像
(镜像)仓库
用于存放各个镜像,对镜像进行统一管理
容器的作用
-
运行在不同环境的软件(如是用不同Java版本的软件)可以通过装在不同的容器中实现资源隔离
-
不进行资源隔离时,软件之间可能由于资源竞争,导致其中一个软件占据了所有资源,而另一个无法被分配资源。
-
在没有容器的时代,通常是用虚拟机的形式对资源进行隔离
-
-
提供了一个标准化的方式
容器VS虚拟机
- 使用虚拟机实现资源隔离需要安装额外的操作系统,这将导致不必要的资源浪费。
- 当服务掉线需要重启时,虚拟机需要进行操作系统的重启,再实现服务的重启,效率相比于容器更低。
- 容器的隔离方案不如操作系统的隔离彻底。
容器即为一个“轻量级的虚拟机”