Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件(docker-compose.yml),您可以配置应用程序的所有服务,然后使用单个命令创建和启动所有服务。
主要功能:
使用 YAML 文件管理多容器应用
一键启动/停止整个应用栈
服务间网络和卷管理
环境变量配置
服务依赖关系管理
在安装 Docker Compose 前,请确保已安装 Docker Engine
# 下载最新版本的 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/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 version v2.23.0
Windows 和 macOS 的 Docker Desktop 已包含 Docker Compose,无需单独安装。
服务 (Service):一个容器化的应用(如 web 服务器、数据库)
项目 (Project):由一组关联服务组成的完整应用
Compose 文件:定义服务、网络和卷的 YAML 文件
version: "3.9" # Compose 文件格式版本
services: # 定义所有服务
web: # 服务名称
image: nginx:alpine # 使用的镜像
ports:
- "80:80" # 端口映射
volumes:
- ./html:/usr/share/nginx/html # 卷挂载
db:
image: postgres:15
environment: # 环境变量
POSTGRES_PASSWORD: example
volumes: # 定义卷
db-data: # 卷名称
image: 指定服务使用的 Docker 镜像。可以直接使用 Docker Hub 上的镜像 (例如 nginx:latest, mysql:8.0),也可以指定私有仓库的镜像。
# docker-compose.yml
version: "3.9"
services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpresspass
wordpress:
image: wordpress:latest
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpresspass
WORDPRESS_DB_NAME: wordpress
depends_on:
- db
volumes:
db_data:
启动应用:
docker-compose up -d
访问 http://localhost:8000 完成 WordPress 安装
一般来说docker和docker Compose文件一些人员已经写好了,比如环境变量的意思,可以根据情况查看开发者文档更改
主要注意,版本,端口映射,挂载路径等。