2

Docker Compose - 更优雅的打开方式

 3 years ago
source link: https://wiki-power.com/DockerCompose-%E6%9B%B4%E4%BC%98%E9%9B%85%E7%9A%84%E6%89%93%E5%BC%80%E6%96%B9%E5%BC%8F
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Docker Compose - 更优雅的打开方式

20210117130925.jpg

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

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

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

version: "3"
services:
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#

授权#

测试是否安装成功#

其他操作#

版本更新#

卸载#

如何使用 Docker Compose#

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

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

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

Docker Compose 的模板#

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

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

参考与致谢#

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK