术语首先介绍几个术语。服务(service):一个应用容器,实际上可以运行多个相同镜像的实例。项目(project):由一组关联的应用容器组成的一个完整业务单元。可见,一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理。场景下面,我们创建一个经典的 Web 项目:一个 Haproxy,挂载三个 Web 容器。
联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
指令的一般格式为 INSTRUCTION arguments,指令包括 FROM、MAINTAINER、RUN 等。FROM格式为 FROM <image>或FROM <image>:<tag>。第一条指令必须为 FROM 指令。并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个 FROM 指令(每个镜像一次)。MAINTAINER格式为 MAINTAINER <name>,指定维护者信息。RUN格式为 RUN <command>