Auto-sync: 2026-04-28 16:03
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user