惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Palo Alto Networks Blog
S
Security Affairs
T
Tor Project blog
T
Threatpost
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
A
Arctic Wolf
K
Kaspersky official blog
O
OpenAI News
Spread Privacy
Spread Privacy
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
Simon Willison's Weblog
Simon Willison's Weblog
雷峰网
雷峰网
P
Privacy & Cybersecurity Law Blog
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
量子位
博客园_首页
Cyberwarzone
Cyberwarzone
博客园 - 三生石上(FineUI控件)
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
IT之家
IT之家
N
News and Events Feed by Topic
博客园 - 司徒正美
V2EX - 技术
V2EX - 技术
S
Schneier on Security
博客园 - 叶小钗
Attack and Defense Labs
Attack and Defense Labs
AI
AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 【当耐特】
Jina AI
Jina AI
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
V
V2EX
S
SegmentFault 最新的问题
V
Visual Studio Blog
PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog

宏尘极客

halo-theme-dream2.0-plus 主题-新版朋友圈配置说明 halo-theme-dream2.0-plus 主题 1.20.2 版本-留言板配置说明 微信红包封面-马到功成 Windows11彻底关闭自动更新指南 WSL2 Docker 资源配置指南 绿联Pro 安装Dos游戏中文版webui,一个可以浏览器内玩dos游戏的容器 绿联Pro 安装 Stirling-PDF-V2 - 强大的本地托管基于 Web 的 PDF 操作工具 绿联Pro 部署在线游戏机 绿联Pro 安装OpenList一个支持多种存储的文件列表程序 绿联Pro 部署Memos - 轻量级自托管备忘录中心 绿联Pro 安装 Stirling-PDF - 强大的本地托管基于 Web 的 PDF 操作工具 绿联Pro 部署Upage - 基于大模型的可视化网页构建平台,Lovable 开源替代 不蒜子数据同步工具使用指南 绿联Pro 部署 PostgreSQL 数据库 绿联Pro 自建不蒜子统计服务,替代Dream2.0 Plus主题页脚统计数据 1panel使用编排模板部署不蒜子服务,自建不蒜子统计服务,替代Dream2.0 Plus主题页脚统计数据 绿联Pro 安装Photopea,轻量在线PS工具 绿联Pro 安装禅道(Zentao),一款功能强大、全面的敏捷项目管理软件 绿联Pro 安装MeterSphere,新一代的测试管理和接口测试工具 绿联Pro 安装Meilisearch 搜索引擎,为halo博客提供增强搜索引擎 解析 <meta> 标签的全局 Referrer 策略设置 电线粗细选择与家用大功率电器布线指南 Nginx 防盗链配置介绍 Nginx 反向代理简介 绿联Pro 部署meting-api服务并使用lukcy反向代理,自建音乐API服务 1panel使用编排模板部署meting-api服务,自建音乐API服务 java开发 - 通过客户端访问接口获取接口服务器实际部署地址 Git revert 撤销已推送到服务器的提交详解 绿联Pro 部署MediaGo,跨平台视频提取工具 C# 自定义事件与委托 绿联Pro 安装Umami,使用MySQL数据库,为你的网站添加网站监控
Docker Compose 标签介绍与示例指南
宏尘 · 2025-07-31 · via 宏尘极客

基础概念

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 YAML 文件配置应用程序的服务,然后使用单个命令创建并启动所有服务。

核心标签解析

1. version 标签(可省略)

作用:指定 Compose 文件格式版本

规则

  • 必须放在文件开头

  • 不同版本支持不同功能

  • 常用版本有 "2.4", "3.8" 等

示例

version: "3.8"

2. services 标签

作用:定义要运行的所有服务容器

规则

  • 每个服务对应一个容器

  • 服务名称不能包含下划线(_)

  • 可以定义多个服务

示例

services:
  webapp:
    image: nginx:latest
  database:
    image: postgres:13

3. image 标签

作用:指定服务使用的镜像

规则

  • 可以使用 Docker Hub 官方镜像

  • 可以指定版本标签(如 :latest, :alpine)

  • 如果本地不存在会自动拉取

示例

services:
  redis:
    image: redis:6.2-alpine

4. build 标签

作用:通过 Dockerfile 构建镜像

规则

  • 需要指定 context (构建上下文路径)

  • 可以指定 Dockerfile 文件名

  • 可以使用 args 传递构建参数

示例

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
      args:
        NODE_ENV: development

5. ports 标签

作用:映射容器端口到主机端口

规则

  • 格式:主机端口:容器端口

  • 可以只指定容器端口(随机分配主机端口)

  • 支持指定协议(tcp/udp)

示例

services:
  web:
    ports:
      - "80:80"         # 主机80映射到容器80
      - "443:443/tcp"   # 指定TCP协议
      - "8080"          # 随机主机端口

6. volumes 标签

作用:配置数据卷挂载

规则

  • 支持三种格式:

    • 主机路径:容器路径

    • 命名卷:容器路径

    • 仅容器路径(匿名卷)

  • 可以设置读写权限(ro/rw)

示例

services:
  db:
    volumes:
      - /data/mysql:/var/lib/mysql   # 主机路径
      - db_data:/var/lib/postgresql  # 命名卷
      - /config                      # 匿名卷
volumes:
  db_data:

7. environment 标签

作用:设置环境变量

规则

  • 可以使用键值对形式

  • 可以使用环境变量文件(.env)

  • 变量会传递给容器内部

示例

services:
  app:
    environment:
      - NODE_ENV=production
      - DB_HOST=db
    env_file:
      - .env

8. depends_on 标签

作用:定义服务启动依赖关系

规则

  • 确保依赖服务先启动

  • 不等待依赖服务"就绪"

  • 可以定义多个依赖服务

示例

services:
  web:
    depends_on:
      - db
      - redis

9. networks 标签

作用:配置容器网络

规则

  • 可以加入自定义网络

  • 可以设置IP地址

  • 支持网络别名

示例

services:
  app:
    networks:
      - frontend
      - backend

networks:
  frontend:
  backend:

完整示例

version: "3.8"

services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - app

  app:
    build: .
    environment:
      - NODE_ENV=production
    networks:
      - app-network

  db:
    image: postgres:13
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=secret

volumes:
  db_data:

networks:
  app-network:
    driver: bridge

使用建议

  1. 从简单配置开始,逐步添加功能

  2. 使用有意义的服务名称

  3. 合理规划网络和数据卷

  4. 充分利用环境变量配置

  5. 注意版本兼容性

通过掌握这些核心标签,您已经能够配置大多数常见的多容器应用场景了。