Docker的核心组件
Docker客户端和服务器;
Docker镜像;
Registry;
Docker容器;
1. Docker客户端和服务器
Docker是一个客户-服务器(c/s)架构的程序。Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具docker以及一整套RESTful API。你可以在同一台主机上运行Docker守护进程和客户端。也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
2. Docker镜像
镜像是构建Docker世界的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建”部分。镜像是基于联合(Union)文件系统的一种层式的结构。,由一系列指令一步一步构建出来。例如:
添加一个文件;
执行一个命令;
打开一个端口;
也可以把镜像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享,存储和更新。
3. Registry
Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。Docker公司运营的公共Registry叫做Docker Hub。用户可以在Docker Hub注册帐号,分享并保存自己的镜像。根据最新统计,Docker Hub上有超过10000注册用户构建和分享的镜像。需要Nginx web服务器的Docker镜像或者MySQL数据库的镜像?这些镜像在Docker Hub上都有,而且具有多种版本。你可以在Docker Hub上保存自己的私有镜像,甚至可以架设自己的私有Registry。
4. 容器
Docker可以帮你构建和部署容器,你只需要把自己的应用程序或服务打包放进容器即可。我们刚刚提到,容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认为,镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。总结起来,Docker容器就是:
一个镜像格式;
一系列标准的操作;
一个执行环境;
Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个模型运用到自己的设计哲学中,唯一不同的是:集装箱运输货物,而Docker运输软件。每个容器都包含一个软件的镜像,也就是容器的“货物”,而且与真正的货物一样,可以对容器里的软件镜像进行一些操作。例如,镜像可以被创建,启动,关闭,重启以及销毁。和集装箱一样,Docker在执行上述操作时,并不关心容器中到底塞进了什么,它不管里面是web服务器,还是数据库,或者是应用程序服务器什么的。所有容器都按照相同的方式将内容“装载”进去