初识容器--Docker架构

主要基于[cloudman]公众号的相关文章整理,主要用于个人学习与笔记记录,无任何商用目的,侵删

Docker 核心组件

  1. Docker 客户端 - Client
  2. Docker 服务器 - Docker daemon
  3. Docker 镜像 - Image
  4. Registry 镜像仓库
  5. Docker 容器 - Container

Docker 架构
Docker采用C/S架构

  • 客户端向服务器发送请求
  • 服务器构建、运行、分发容器
  • 二者可以运行在同一台主机上,也可以通过socket或API通信
    初识容器--Docker架构
    下面开始分开介绍各个核心组件

客户端

最常用的客户端是 docker 命令,可以在host上构建和运行容器
初识容器--Docker架构

服务端

Docker daemon 是服务器组件

  • 以 Linux 后台服务的方式运行
  • 运行在 Docker host 上,负责创建、运行、监控容器,构建、存储镜像
  • 默认配置下,Docker daemon 只能响应来自本地 Host 的客户端请求,如果需要远程请求,需要特殊配置,具体查看原文:Docker 架构详解
    • 编辑配置文件
    • 重启Docker daemon
    • 客户端请求时命令行带上 -H 参数
      初识容器--Docker架构

镜像

Docker的只读模板,可以通过镜像创建实际的Docker容器

镜像的生成方法

  1. 可以从无到有开始创建镜像
  2. 也可以下载并使用别人创建好的现成的镜像
  3. 还可以在现有镜像上创建新的镜像

镜像的内容和创建步骤描述在一个文本文件中,这个文件被称作 Dockerfile,通过执行 docker build <docker-file> 命令可以构建出 Docker 镜像,后面会单独展开说明

Docker 容器

Docker 容器就是 Docker 镜像的运行实例。

用户可以通过 CLI(docker)或是 API 启动、停止、移动或删除容器。
可以这么认为,对于应用软件,

  • 镜像是软件生命周期的构建和打包阶段
  • 而容器则是启动和运行阶段。

Registry 镜像仓库

存放Docker镜像的仓库,分为公有和私有

  • 公有:Docker Hub(https://hub.docker.com/) 是默认的 Registry,由 Docker 公司维护,上面有数以万计的镜像,用户可以*下载和使用。
  • 私有:用户本地搭建

镜像操作

  • docker pull :可以从 Registry 下载镜像
  • docker run :则是先下载镜像(如果本地没有),然后再启动容器