Docker 体系结构
docker 服务端, 作为服务的提供方, 核心进程 docker daemon, 所有 docker 命令都是通过这个进程完成的
REST API: 通信层, 基于 web 容器提供 http 协议服务
docker CLI: 提供常用的 docker 命令
基于 HTTP 协议, docker 的兼容性和扩展性是特别好的
基于这种 CS 架构, 对于应用来说, 最大的好处就是服务器与客户端可以不用安装在同一台电脑上, 可以跨机器管理多台服务器, 提高运维效率
Docker 命令
docker pull 镜像名 <:tags>
- 从远程仓库拉取镜像
docker images - 查看本地镜像
docker run 镜像名 <:tags>
- 创建容器, 启动应用
docker ps - 查看正在运行中的镜像
docker version - 查看 docker 版本
docker rm <-f> 容器 ID
- 删除容器 -f 强制删除, 生产环境禁用强制删除
docker rmi <-f> 镜像 ID
- 删除镜像,-f 强制删除, 生产环境禁用强制删除
`docker build -t 机构 / 镜像文件 <:tags> Dockerfile 目录 - 编译 dockerfile 镜像配置文件, 生成自定义镜像文件
`docker exec -it 容器 id - 运行 docker 容器
Docker 执行过程
[x] Docker Host 是我们的 docker 宿主机
[x] Registry 是 docker 拉取镜像的远程仓库, 提供大量的镜像供下载, 下载完成之后保存在 Images 中
[x] Docker Daemon 是 docker 的服务线程, 处理客户端命令
[x] Images 是本地的镜像仓库, 可以通过 docker images 查看
[x] Docker Daemon 是 docker 的服务线程, 处理客户端命令
执行过程
客户端通过 REST API 发送指令到 docker host 的 docker daemon 进程,
Docker daemon 进程处理不同的指令, 交将结果返回到客户端
以 docker pull 命令为例
客户端通过 REST API 将指令发送给 docker daemon
docker daemon 先检查本地 images 中有没有相关的镜像
如果本地没有相关的镜像, 则向镜像服务器请求, 将远程镜像下载到本地
返回客户端
写在最后
来源: https://www.cnblogs.com/albk/p/12219566.html