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执行过程
- Docker Host是我们的docker宿主机
- Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中
- Docker Daemon是docker的服务线程,处理客户端命令
- Images 是本地的镜像仓库,可以通过
docker images
查看 - Docker Daemon是docker的服务线程,处理客户端命令
执行过程
- 客户端通过rest api 发送指令到 docker host的docker daemon进程,
- Docker daemon进程处理不同的指令,交将结果返回到客户端
以docker pull 命令为例
- 客户端通过rest api将指令发送给docker daemon
- docker daemon 先检查本地images中有没有相关的镜像
- 如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地
- 返回客户端
写在最后
期望热爱技术的你一起来交流,获取最新资料和学习资源,可以关注公众号albk, 个人博客 !