Auto-sync: 2026-04-28 16:03

This commit is contained in:
2026-04-28 16:03:03 +08:00
parent f8b421ece6
commit 365caa800a
48 changed files with 1942 additions and 1249 deletions

View File

@@ -1,70 +1,32 @@
# Docker Compose
## Description
Docker Compose 是 Docker 官方提供的多容器 Docker 应用定义和运行工具。通过 `docker-compose.yml`(或 `compose.yaml`)配置文件,使用 YAML 格式声明式定义多容器服务的网络、卷、端口映射、环境变量等,实现一键部署复杂应用。
## Version
- **V1 (独立包)**`docker-compose` 命令(已弃用)
- **V2 (插件)**`docker compose` 命令(当前主流),通过 `docker-compose-plugin` 包安装,集成到 Docker CLI
## V1 vs V2 Command Reference
| V1 (独立包) | V2 (插件) |
|------------|-----------|
| `docker-compose up -d` | `docker compose up -d` |
| `docker-compose ps` | `docker compose ps` |
| `docker-compose down` | `docker compose down` |
| `docker-compose -f xxx.yml config` | `docker compose -f xxx.yml config` |
## Core Concepts
- **Services**: 定义每个容器服务(镜像、构建、端口、卷、环境变量)
- **Volumes**: 命名数据卷,持久化容器数据
- **Networks**: 容器网络配置bridge、host、overlay
- **Version**: `version: '3.8'` 为当前主流版本规范
## Example
```yaml
version: '3.8'
services:
it-tools:
image: corentinth/it-tools:latest
container_name: it-tools
restart: unless-stopped
stdin_open: true
tty: true
ports:
- "8999:80"
deploy:
resources:
limits:
memory: 128M
```
## Used By
- [[用docker安装it-tools]]
- [[用docker安装transmission]]
- [[如何删除旧的废弃的docker-container-volume]]
- [[Navidrome]]
- [[Jellyfin]]
- [[RSSHub]]
- [[Portainer]]
## External Mode
Compose 文件中声明 `external: true` 可让 Docker 复用已存在的 Volume 或 Network 而非创建新的,避免重装时的命名冲突警告:
```yaml
volumes:
portainer_data:
external: true
networks:
portainer_network:
external: true
```
## Related Concepts
- [[Docker-Image]]
- [[Docker-Save]]
- [[Docker-Load]]
- [[容器资源限制]]
- [[容器重启策略]]
- [[端口映射]]
- [[桥接网络]]
---
title: "Docker Compose"
type: concept
tags: [docker, devops, orchestration]
last_updated: 2026-04-23
---
## Overview
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过 YAML 文件(`docker-compose.yml`)声明服务、网络、卷等配置,一条命令即可启动整套应用栈。
## Key Commands
```bash
docker-compose up -d # 启动服务(后台)
docker-compose down # 停止并移除容器
docker-compose restart # 重启服务
```
## Key Concepts
- **Services**: 每个容器定义为一个 service
- **Network Mode**: 可使用 `network_mode: host` 将容器网络直接绑定到宿主机
- **Environment Variables**: 通过 `environment` 字段注入环境变量(如 `YOUTUBE_KEY``HTTP_PROXY`
- **Volumes**: 通过 `volumes` 字段将宿主机文件/目录挂载到容器内
- **Restart Policy**: `restart: unless-stopped` 确保容器在宿主机重启后自动恢复
## Usage in This Wiki
- RSSHub 部署配置使用 Docker Compose 作为主机上的容器编排工具
- n8n、Portainer、Jellyfin 等服务均通过 Docker Compose 管理
## Aliases
- docker-compose
- Docker Compose
- docker compose