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
  • 优势:容器编排,轻量级,开源,弹性伸缩,负载均衡