概述
官网https://www.docker.com
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux 或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
组成
1.DockerClient 客户端
2.Docker Daemon 守护进程
3.Docker Image 镜像
4.DockerContainer 容器
守护进程是运行在你的操作系统上的一个服务。它提供了REST API,许多工具都可以通过REST API与Docker守护进程进行交互,例如创建容器,构建镜像等
镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
容器可以将其理解为一个运行镜像的载体,镜像和容器的关系就像光盘和驱动。容器基于镜像创建、启动然后运行镜像中的文件
Docker 应用架构图
Docker 是一种Client、Server架构
其中:
最左侧是Docker客户端,即Docker命令行。
中间是Docker Host 主机,我们的docker宿主机(就是安装了docker的操作系统),
Docker Daemon是Docker守护进程运行在上面,处理Docker客户端命令。
最右侧Registry是Docker仓库,它也是Docker生态系统中的一份子。它提供大量的镜像供下载,下载完成之后保存在Images中
images 是Docker本体的镜像仓库,可以通过docker images查看镜像文件
Docker运行机制
docker pull 执行过程:
1.客户端将指令发送给docker daemon
2.docker daemon 先检查本地images 中有没有相关的镜像
3.如果本地没有,则向镜像服务器请求,将远程镜像下载到本地
docker run 执行过程:
1.检查本地是否存在指定的镜像,不存在就从公有仓库下载
2.利用镜像创建创建并启动一个容器
3.分配一个文件系(简版linux系统),并在只读的镜像层外面挂在一层可读写层
4.从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
5.从地址池配置一个ip地址给容器
6.执行用户指定的应用程序