Docker Compose 简介
Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YAML 文件来配置应用程序需要的所有服务,然后,使用一个命令,就可以从 YAML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用
docker-compose.yml
文件定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 - 执行
docker-compose up
命令来启动并运行整个应用程序。
docker-compose.yml
的配置示例
docker-compose.yml
配置示例,用于运行一个简单的 web 应用程序和一个 MySQL 数据库:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: exampledb
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
版本:
version: '3.8'
- 这是 Docker Compose 文件的版本号。
服务:
web 服务使用
nginx:latest
镜像。- 端口映射:
8080:80
将主机的 8080 端口映射到容器的 80 端口。 - 卷:
./html:/usr/share/nginx/html
将主机上的html
目录挂载到容器内的 Nginx 服务器根目录。 - 依赖:
depends_on
指定该服务依赖db
服务,即db
服务会先启动。
- 端口映射:
db 服务使用
mysql:5.7
镜像。环境变量:
environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: exampledb MYSQL_USER: user MYSQL_PASSWORD: password
这些变量配置 MySQL 数据库的初始设置,包括根密码、数据库名、用户名和用户密码。
- 卷:
db_data:/var/lib/mysql
将数据保存到 Docker 卷db_data
中,以确保数据库的数据持久化。
卷:
volumes: db_data:
- 定义了一个名为
db_data
的卷,用于存储 MySQL 数据库的数据。
- 定义了一个名为
这个配置文件创建了一个简单的应用程序,其中包含一个 Nginx 服务器和一个 MySQL 数据库。您可以通过运行 docker-compose up
来启动这两个服务。
Docker Compose 安装
在 Linux 上,我们可以从 Github 上下载它的二进制包来使用,运行以下命令下载 Docker Compose 的当前稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
创建软链接:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功:
docker-compose version
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。