深入浅出Docker 奈吉尔•波尔顿

Docker公司的一个核心哲学通常被称为“含电池,但可拆卸”(Batteries included but removable)

Docker是一种运行于Linux和Windows上的软件,用于创建、管理和编排容器。Docker是在GitHub上开发的Moby开源项目的一部分。Docker公司,位于旧金山,是整个Moby开源项目的维护者。Docker公司还提供包含支持服务的商业版本的Docker。

开发容器计划OCI

开放容器倡议 (OCI) 是一个轻量级的开放治理结构(项目),在 Linux 基金会的支持下形成,其明确目的是围绕容器格式和运行时创建开放的行业标准。OCI 于 2015 年 6 月 22 日由 Docker、CoreOS 和其他容器行业的领导者发起。

OCI目前包含三个规范:运行时规范(runtime-spec)、镜像规范(image-spec)和分发规范(distribution-spec)。运行时规范概述了如何运行在磁盘上解压的“文件系统包”。在高层次上,OCI 实现会下载一个 OCI 映像,然后将该映像解压缩到一个 OCI 运行时文件系统包中。此时,OCI Runtime Bundle 将由 OCI Runtime 运行。

本规范定义了如何创建 OCI 镜像,一般由构建系统完成,并输出镜像清单、文件系统(层)序列化和镜像配置. 在较高级别上,映像清单包含有关映像内容和依赖项的元数据,包括一个或多个文件系统序列化档案的内容可寻址身份,这些档案将被解包以构成最终的可运行文件系统。映像配置包括应用程序参数、环境等信息。映像清单、映像配置和一个或多个文件系统序列化的组合称为 OCI 映像

About the Open Container Initiative - Open Container Initiative

https://github.com/opencontainers/runc

不同视角下的Docker使用

        在运维视角中,主要包括下载镜像、运行新的容器、登录新容器、在容器内运行命令,以及销毁容器。 

        在开发视角中,更多关注与应用相关的内容。本书会从GitHub拉取一些应用代码,解释其中的Dockerfile,将应用容器化,并在容器中运行它们。

        Docker主机上获取镜像的操作被称为拉取(pulling)

        Docker的每个镜像都有自己的唯一ID。用户可以通过引用镜像的ID或名称来使用镜像

        Dockerfile是一个纯文本文件,其中描述了如何将应用构建到Docker镜像当中