Docker的运行流程
1、当用户发送一个操作指令首先它会先到达docker_host下docker_host代表docker的主机。
2、docker主机下有docker daemon的进程,它会接收指令并去执行。
3、docker daemon管理容器和本地仓库,当他收到run命令时,它会先检查本地仓库是否存在这个镜像。
4、如果镜像存在的话直接运行,不存在的话去远程拉取这个镜像
docker组件
Docker Client 是用户界面,它支持用户与Docker Daemon之间通信
Docker Daemon Docker最核心的后台进程,运行于主机上,处理服务请求
Docker registry是仓库,支持拥有公有与私有访问权限的Docker容器镜像的备份
Docker Containers负责应用程序的运行,包括操作系统、用户添加的文件以及元数据
Docker Images是一个只读模板,它是一个文件的打包方式类似微服务的jar包,用来运行Docker容器
DockerFile是文件指令集,用来说明如何自动创建Docker镜像
docker镜像
Docker 镜像是一个特殊的文件系统,提供容器运行时所需的程序、库、资源、配置等文件等
镜像的组成:
- 镜像的组成镜像是一层层构建的每一层都是一个单独的文件
- 每一层构建完成就会不会发生变化
- 任何改变只发生在当前层
使用多层存储的意义: - 可以加快下载速度 直接下载大文件会比较慢,拆分成小文件之后会提高下载效率
- 节省存储空间。 如图当下载微服务应用时,可以直接使用tomcat中已经下载好的jdk和centos
容器的概念
容器是镜像的运行实体
容器的实质是进程
容器的特点:
1、容器进程运行在隔离环境中
2、容器运行会创建存储层
3、所有的写入都会写入到存储层
4、当删除容器时存储层也会消失
镜像仓库
镜像仓库是用来分发镜像的,仓库由三部分组成:仓库地址/仓库名称/tag
如:Edhug.com/nginx-proxy:1.27