初识容器--Docker架构
主要基于[cloudman]公众号的相关文章整理,主要用于个人学习与笔记记录,无任何商用目的,侵删
Docker 核心组件
- Docker 客户端 - Client
- Docker 服务器 - Docker daemon
- Docker 镜像 - Image
- Registry 镜像仓库
- Docker 容器 - Container
Docker 架构
Docker采用C/S架构
- 客户端向服务器发送请求
- 服务器构建、运行、分发容器
- 二者可以运行在同一台主机上,也可以通过socket或API通信
下面开始分开介绍各个核心组件
客户端
最常用的客户端是 docker
命令,可以在host上构建和运行容器
服务端
Docker daemon 是服务器组件
- 以 Linux 后台服务的方式运行
- 运行在 Docker host 上,负责创建、运行、监控容器,构建、存储镜像
- 默认配置下,Docker daemon 只能响应来自本地 Host 的客户端请求,如果需要远程请求,需要特殊配置,具体查看原文:Docker 架构详解
- 编辑配置文件
- 重启Docker daemon
- 客户端请求时命令行带上
-H
参数
镜像
Docker的只读模板,可以通过镜像创建实际的Docker容器
镜像的生成方法
- 可以从无到有开始创建镜像
- 也可以下载并使用别人创建好的现成的镜像
- 还可以在现有镜像上创建新的镜像
镜像的内容和创建步骤描述在一个文本文件中,这个文件被称作 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
:则是先下载镜像(如果本地没有),然后再启动容器