《第一本Docker书(修订版)》——1.2 Docker组件

1.2 Docker组件

我们来看看Docker的核心组件:

Docker客户端和服务器,也称为Docker引擎;
Docker镜像;
Registry;
Docker容器。
1.2.1 Docker客户端和服务器
Docker是一个客户端/服务器(C/S)架构的程序。Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker守护进程有时也称为Docker引擎。Docker提供了一个命令行工具docker以及一整套RESTful API[2]来与守护进程交互。用户可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。图1-1描绘了Docker的架构。

图1-1 Docker架构

1.2.2 Docker镜像
镜像是构建Docker世界的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建”部分。镜像是基于联合(Union)文件系统的一种层式的结构,由一系列指令一步一步构建出来。例如:

添加一个文件;
执行一个命令;
打开一个端口。
也可以把镜像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享、存储和更新。在本书中,我们将会学习如何使用已有的镜像,同时也会尝试构建自己的镜像。

1.2.3 Registry
Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。Docker公司运营的公共Registry叫作Docker Hub。用户可以在Docker Hub[3]注册账号[4],分享并保存自己的镜像。

根据最新统计,Docker Hub上有超过10 000注册用户构建和分享的镜像。需要Nginx Web服务器[5]的Docker镜像,或者Asterix开源PABX系统[6]的镜像,抑或是MySQL数据库[7]的镜像?这些镜像在Docker Hub上都有,而且具有多种版本。

用户也可以在Docker Hub上保存自己的私有镜像。例如,包含源代码或专利信息等需要保密的镜像,或者只在团队或组织内部可见的镜像。

用户甚至可以架设自己的私有Registry。具体方法会在第4章中讨论。私有Registry可以受到防火墙的保护,将镜像保存在防火墙后面,以满足一些组织的特殊需求。

1.2.4 容器
Docker可以帮用户构建和部署容器,用户只需要把自己的应用程序或服务打包放进容器即可。我们刚刚提到,容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认为,镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。

总结起来,Docker容器就是:

一个镜像格式;
一系列标准的操作;
一个执行环境。
Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个模型运用到自己的设计哲学中,唯一不同的是:集装箱运输货物,而Docker运输软件。

每个容器都包含一个软件镜像,也就是容器的“货物”,而且与真正的货物一样,容器里的软件镜像可以进行一些操作。例如,镜像可以被创建、启动、关闭、重启以及销毁。

和集装箱一样,Docker在执行上述操作时,并不关心容器中到底塞进了什么,它不管里面是Web服务器,还是数据库,或者是应用程序服务器什么的。所有容器都按照相同的方式将内容“装载”进去。

Docker也不关心用户要把容器运到何方:用户可以在自己的笔记本中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,再把容器部署到Amazon EC2主机的集群中去。像标准集装箱一样,Docker容器方便替换,可以叠加,易于分发,并且尽量通用。

使用Docker,可以快速构建一个应用程序服务器、一个消息总线、一套实用工具、一个持续集成(continuous integration,CI)测试环境或者任意一种应用程序、服务或工具。可以在本地构建一个完整的测试环境,也可以为生产或开发快速复制一套复杂的应用程序栈。可以说,Docker的应用场景相当广泛。

时间: 2024-09-20 17:39:51

《第一本Docker书(修订版)》——1.2 Docker组件的相关文章

《第一本Docker书(修订版)》——第2章 安装Docker 2.1安装Docker的先决条件

第2章 安装Docker Docker的安装既快又简单.目前,Docker已经支持非常多的Linux平台,包括Ubuntu和RHEL(Red Hat Enterprise Linux,Red Hat企业版Linux).除此之外,Docker还支持Debian.CentOS.Fedora.Oracle Linux等衍生系统和相关的发行版.如果使用虚拟环境,甚至也可以在OS X和Microsoft Windows中运行Docker. 目前来讲,Docker团队推荐在Ubuntu.Debian或者RH

《第一本Docker书(修订版)》——2.5 在Windows中安装Docker Toolbox

2.5 在Windows中安装Docker Toolbox 如果使用的是Microsoft Windows系统,也可以使用Docker Toolbox工具快速上手Docker.Docker Toolbox是一个Docker组件的集合,还包括一个极小的虚拟机,在Windows宿主机上安装了一个支持命令行工具,并提供了一个Docker环境. Docker Toolbox自带了很多组件,包括: VirtualBox:Docker客户端:Docker Compose(参见第7章):Kitematic--

《第一本Docker书(修订版)》——2.4 在OS X中安装Docker Toolbox

2.4 在OS X中安装Docker Toolbox 如果使用的是OS X系统,则可以使用Docker Toolbox[23]快速上手Docker.Docker Toolbox是一个Docker组件的集合,还包括一个极小的虚拟机,在OS X宿主机上会安装与之对应的命令行工具,并提供了一个Docker环境. Docker Toolbox自带了很多组件,包括: VirtualBox:Docker客户端:Docker Compose(参见第7章):Kitematic--一个 Docker和Docker

《第一本Docker书(修订版)》——导读

** 前言 **Scott Collier是一位高级主任系统工程师,就职于Red Hat的系统设计及工程团队.该团队根据从销售.市场以及工程团队收集到的数据,甄别并提供高价值的解决方案,并为内外部用户开发参考架构.Scott是Red Hat认证构架师(RHCA),具有超过15年的IT从业经验,他现在专注于Docker.OpenShift以及Red Hat系列产品.John是一位连续创业者,同时也是高可用性.可扩展性基础设备专家.John现在在自己创建的Bulletproof公司担任CTO,这是一

《第一本Docker书(修订版)》——1.7 Docker资源

1.7 Docker资源 Docker官方主页(http://www.docker.com/).Docker Hub(http://hub.docker.com).Docker官方博客(http://blog.docker.com/).Docker官方文档(http://docs.docker.com/).Docker快速入门指南(http://www.docker.com/tryit/).Docker的GitHub源代码(https://github.com/docker/docker).Do

《第一本Docker书(修订版)》——1.6 本书的内容

1.6 本书的内容 在本书中,我们将讲述如何安装.部署.管理Docker,并对其进行功能扩展.我们首先会介绍Docker的基础知识及其组件,然后用Docker构建容器和服务,来完成各种的任务. 我们还会体验从测试到生产环境的完整开发生命周期,并会探讨Docker适用于哪些领域,Docker是如何让我们的生活更加简单的.我们使用Docker为新项目构建测试环境,演示如何将Docker集成到持续集成工作流,如何构建程序应用的服务和平台.最后,我们会向大家介绍如何使用Docker的API,以及如何对D

《第一本Docker书(修订版)》——2.9 Docker守护进程

2.9 Docker守护进程 安装完Docker后,需要确认Docker的守护进程是否运行.Docker以root权限运行它的守护进程,来处理普通用户无法完成的操作(如挂载文件系统).docker程序是Docker守护进程的客户端程序,同样也需要以root身份运行.用户可以使用docker daemon命令控制Docker守护进程. 注意 在Docker 1.8之前,Docker守护进程是通过-d标志来控制的,而没有docker daemon子命令. 当Docker软件包安装完毕后,默认会立即启

《第一本Docker书(修订版)》——2.3 在Red Hat和Red Hat系发行版中安装Docker

2.3 在Red Hat和Red Hat系发行版中安装Docker 在Red Hat企业版Linux(或者CentOS或Fedora)中,只有少数几个版本可以安装Docker,包括: RHEL(和CentOS)6或以上的版本(64位): Fedora 19或以上的版本(64位): Oracle Linux 6和Oracle Linux 7,带有Unbreakable企业内核发行版 3(3.8.13)或者更高版本(64位). 提示 在Red Hat企业版Linux 7及更高版本中,Docker已经

《第一本Docker书(修订版)》——2.7 Docker安装脚本

2.7 Docker安装脚本 还有另外一种方法,就是使用远程安装脚本在相应的宿主机上安装Docker.可以从get.docker.com网站获取这个安装脚本. 注意该脚本目前只支持在Ubuntu.Fedora.Debian和Gentoo中安装Docker,不久的未来可能会支持更多的系统.首先,需要确认curl命令已经安装,如代码清单2-41所示. 代码清单2-41 测试curl $ whereis curl curl: /usr/bin/curl /usr/bin/X11/curl /usr/s