Docker引擎
Docker Engine 是C/S架构的
![](https://img.haomeiwen.com/i14270006/9d9f6790475c55c3.png)
Docker组成
docker最核心的组件
- image镜像,构建容器(我们将应用程序运行所需的环境,打包为镜像文件)
- Container,容器(你的应用程序,就跑在容器中)
- 镜像仓库(dockerhub),保存镜像文件,提供上传,下载镜像
- Dockerfile,将你部署项目的操作,写成一个部署脚本,这就是dockerfile,且该脚本还能够构建出镜像文件
创建容器的过程
获取镜像,如docker pull centos ,从镜像仓库拉取
使用镜像创建容器
分配文件系统,挂载一个读写层,在读写层加载镜像
分配网络/网桥接口,创建一个网络接口,让容器和宿主机通信
容器获取IP地址
执行容器命令,如/bin/bash
反馈容器启动结果。
![](https://img.haomeiwen.com/i14270006/605f35aced734cb9.png)
![](https://img.haomeiwen.com/i14270006/8be38389bb858ae2.png)
Images(镜像)
镜像是一个只读模板,用于创建容器,也可以通过Dockerfile文本描述镜像的内容。
镜像的概念类似于编程开发里面向对象的类,从一个基类开始(基础镜像Base Image)
构建容器的过程,就是运行镜像,生成容器实例。
Dacker镜像的描述文件是Dockerfile,包含了如下的指令
- FROM定义基础镜像
- MAINTAINER作者
- RUN运行Linux命令
- ADD添加文件/目录
- ENV环境变量
- CMD运行进程
Container(容器)
容器是一个镜像的运行实例,镜像>容器。
创建容器的过程
- 获取镜像,如docker pull centos ,从镜像仓库拉取
- 使用镜像创建容器
- 分配文件系统,挂载一个读写层,在读写层加载镜像
- 分配网络/网桥接口,创建一个网络接口,让容器和宿主机通信
- 容器获取IP地址
- 执行容器命令,如/bin/bash
- 反馈容器启动结果。
Registry(仓库)
Docker镜像需要进行管理,docker提供了Registry仓库,其实它也是一个容器,可以用于可以基于该容器运行私有仓库。
也可以使用Docker Hub互联网公有镜像仓库。
网友评论