Skip to main content

Docker Compose - 更优雅的打开方式

Docker Compose 是一种对 Docker 镜像的编排方式,解决了传统命令行 Docker 运行多镜像的麻烦。

Docker 的思想是解耦,即一个镜像一个进程,提高复用率,而不是把多个服务封装成一个镜像。但像一个典型的 web 应用,至少需要服务端和数据库配合,这样至少需要两条以上的 Docker 命令;甚至有些服务需要按一定先后顺序启动,这样一来,需要的镜像和操作步骤会很复杂。

Docker Compose 把所需要调用的镜像(包括各种参数)和顺序等,全部写在一个 yaml 文件里,直接运行这个配置文件,就可以 按照你所需的方法和步骤运行容器 。所以称 Docker Compose 为一种 镜像编排的方式 。一个 web 应用的例子:

version: "3"
services:
web:
image: beginor/geoserver:2.11.1
container_name: geoserver-web
hostname: geoserver-web
ports:
- 8080:8080
volumes:
- ./web/data_dir:/geoserver/data_dir
- ./web/logs:/geoserver/logs
restart: unless-stopped
links:
- database:database
database:
image: beginor/postgis:9.3
container_name: postgis
hostname: postgis
ports:
- 5432:5432
volumes:
- ./database/data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: 1q2w3e4R
restart: unless-stopped

在这个 yaml 文件中,定义了两个服务:web 和 database,一个服务在运行时对应一个容器的实例, 上面的文件表示要启动两个实例。

安装 Docker Compose#

前提#

Docker Compose 依赖 Docker Engine,所以请先确保你已经安装了 Docker Engine 环境。如果你还没安装,可以参考上一篇教程:Docker 简易指南 安装 Docker Engine.

如果你用的是 Windows 和 MacOS 的桌面客户端,那就不用另外安装 Docker Compose 了,因为已经包含在 Docker Desktop 内了。

本教程详细讲解 Linux 下的 Docker Compose 安装。

下载 Docker Compose#

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

授权#

sudo chmod +x /usr/local/bin/docker-compose

测试是否安装成功#

docker-compose --version

其他操作#

版本更新#

docker-compose migrate-to-labels

卸载#

sudo rm /usr/local/bin/docker-compose

如何使用 Docker Compose#

通常我们将 docker-compose.yml 文件放到一个目录,表示一个应用。

要运行这个程序,只要在这个目录下执行 docker-compose up 命令,即可按 yaml 文件中的配置启动服务。(加参数 -d 可以后台运行)

要停止服务的运行,用 docker-compose down 就可以了。

Docker Compose 的模板#

Docker Compose 默认的模板文件名称为 docker-compose.yml,为 yaml 格式,内容如下:

version: "3"
services:
webapp:
image: examples/web
ports:
- "80:80"
volumes:
- "/data"

一般来说,yaml 文件在 Docker 项目简介中会提供。

参考与致谢#

文章作者:Power Lin
原文地址:https://wiki-power.com
版权声明:文章采用 CC BY-NC-SA 4.0 协议,转载请注明出处。

Last updated on