概述
Compose
项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack
中的 Heat
十分类似。
其代码目前在 https://github.com/docker/compose 上开源。
Compose
中有两个重要的概念:
- 服务(
service
):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目(
project
):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml
文件中定义。
Compose
的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。
Compose
项目由 Python 编写,实现上调用了 Docker 服务提供的 API 来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用 Compose
来进行编排管理。
目录
1.Docker Compose 安装与卸载
2.Docker Compose 使用
3.Docker Compose 模板文件
4.Docker Compose 常用命令
1.Docker Compose 安装与卸载
二进制包安装
从 官方 GitHub Release 处直接下载编译好的二进制文件即可。例如,在 Linux 64 位系统上直接下载对应的二进制包。
$ sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
PIP 安装
注:*
x86_64
架构的 Linux 建议按照上边的方法下载二进制包进行安装,如果您计算机的架构是ARM
(例如,树莓派),在使用pip
安装。这种方式是将 Compose 当做一个 Python 应用来从 pip 源中安装。
执行安装命令:
$ sudo pip install -U docker-compose
可以看到类似如下输出,说明安装成功。
Collecting docker-compose Downloading docker-compose-1.17.1.tar.gz (149kB): 149kB downloaded ... Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress
卸载
如果是二进制包方式安装的,删除二进制文件即可。
$ sudo rm /usr/local/bin/docker-compose
如果是通过
pip
安装的,则执行如下命令即可删除。$ sudo pip uninstall docker-compose
2.Docker Compose 使用
如下以 tomcat 为例
创建目录
$ cd /usr/local $ mkdir -p docker/tomcat
编写
docker-compose.yml
文件,这个是 Compose 使用的主模板文件。$ pwd /usr/local/docker/tomcat $ vi docker-compose.yml
version: '3.1' services: tomcat: restart: always image: tomcat container_name: tomcat ports: - 8080:8080 volumes: - /usr/local/docker/tomcat/webapps/ROOT:/usr/local/tomcat/webapps/ROOT environment: TZ: Asia/Shanghai
创建 webapps 内容
$ mkdir -p webapps/ROOT $ echo 'Hello Docker Compose!' > index.html
运行 compose 项目
跳转到 docker-compose.yml 目录下运行
$ docker-compose up
访问地址:http://容器ip:8080
3.Docker Compose 模板文件
模板文件是使用 Compose
的核心,涉及到的指令关键字也比较多。但大家不用担心,这里面大部分指令跟 docker run
相关参数的含义都是类似的。
默认的模板文件名称为 docker-compose.yml
,格式为 YAML 格式。
version: '3.1'
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 8080:8080
4.Docker Compose 常用命令
前台运行
docker-compose up
后台运行
docker-compose up -d
启动
docker-compose start
停止
docker-compose stop
停止并移除容器
docker-compose down