Docker 基础
1. 什么是Docker
- 镜像:容器运行时的只读模板,每一个镜像由一系列的层组成
- 仓库:用于保存镜像,可以理解为代码控制中的代码仓库
- 容器:包含了所有的某个应用运行所需要的环境,每个容器都是从镜像创建,是独立的应用平台
- Dockerfile:包含创建镜像所有命令的文本文件
- Docker Registry:官方提供的工具,可以用于构建私有的镜像仓库
- Docker Hub:官方提供的公有 Docker Registry
3. 应用场景
- 简化配置:运行环境和配置放在代码中部署,降低了硬件要求和应用环境之间的耦合度
- 代码流水线管理:代码从开发机到正式环境,中间环节需要很多环境,Docker可以提供一致性的环境
- 提高效率:可以利用Docker,让开发环境更加逼近正式环境
- 隔离应用:Docker可以让一台机器上运行的不同应用,彼此相互隔离
- 整合服务:Docker可以通过虚拟机,整合多个应用
- 调试能力:Docker提供了很多的工具,用于为容器设置检查点、比较容器差异等,辅助调试
- 多租户环境:使用Docker,可以为每个租户的应用层的多个实例创建隔离的环境
- 快速部署:Docker通过创建容器部署,将部署过程压缩到秒级
4. Docker 运行结构
- Docker Client:用户与Docker Daemon建立通信的终端
- Docker Daemon
- 服务端命令:基本命令格式为 docker daemon [OPTIONS]
- 容器操作命令:ps,inspect,top,attach,events,logs,wait,export,port
- 容器rootfs命令:commit,cp,diff
- 镜像仓库命令:login,pull,push,search
- 本地镜像管理命令:images,rmi,tag,build,history,save,import,-
- info|version命令:info,version
- 运行Docker命令所需要的引擎
- Docker Compose:容器管理工具
- Kitematic:Docker GUI界面
- Oracle公司的VM VirtualBox
- 优势:容器编排,轻量级,开源,弹性伸缩,负载均衡