Docker 是一种运行于 Linux 和 Windows 上的软件,用于创建、管理和编排容器。
Docker 是在 GitHub 上开发的 Moby 开源项目的一部分。Docker 公司,位于旧金山,是整个 Moby 开源项目的维护者。Docker 公司还提供包含支持服务的商业版本的 Docker。
1、Docker仓库:Docker Hubhttps://hub.docker.com/2、Dcoker自身组件:
● Docker Client:Docker的客户端
● Docker Sever: Docker Daemon的主要组成部分,接受客户通过Docker Client发出的请求,并按照相应的路由规则实现路由转发。
● Docker镜像: Docker 镜像运行之后变成容器(docker run)
镜像:环境的封装(系统环境+应用环境)
仓库:存放镜像,提供保存下载服务
容器:实例
Docker运行的基本流程:
● 用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者。
● Docker Daemon作为Docker 架构中的主体部分,首先提供Docker Server的功能使其可以接受Docker Client的请求。
● Docker Engine 执行Docker内部的一系列工作,每一项工作都是以一个Job的形式的存在。
● Job的运行过程中,当需要容器镜像时,则从Docker Registry 中下载镜像,并通过镜像管理驱动Graph driver将下载镜像以Graph的形式存储。
● 当需要为Docker 创建网络环境时,通过网络管理驱动Network driver 创建并配置Docker容器网络环境。
● 当需要限制 Docker 容器运行资源或执行用户指令等操作时,则通过Exec driver来完成。
● Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行的操作。