Tool.Yun
在线云工具 • 免费工具箱
Docker Compose 到 .env 文件
Docker Compose到Docker运行转换器
Docker Compose到Kubernetes
Docker Compose到Quadlets转换器
Docker Compose格式转换器
Docker Compose验证器
Docker Pangolin 标签
Docker 检查到 Docker 运行
Dockerfile 标签生成器
Docker运行到Kubernetes
Docker运行到Quadlets转换器
Docker运行命令转Docker Compose转换器
Docker镜像下载器
Kubernetes RBAC生成器
Traefik Docker Compose生成器
CSV转JSON
JQ/JSONPath测试器
JSON 到数据
JSON 转 MessagePack
JSON 转换为 .env
JSON压缩器
JSON合并器
JSON大小分析器
JSON字符串转换器
JSON展开/嵌套化工具
JSON差异比较
JSON排序大师
JSON查询
JSON格式化与美化
JSON检查器
JSON编辑器
JSON转C#
JSON转CSV
JSON转Go
JSON转JS转换器
JSON转Java实体
JSON转PHP代码
JSON转PHP数组
JSON转Python
JSON转SQL DDL
JSON转TOML
JSON转TS(TypeScript)
JSON转XML
JSON转YAML转换器
JSON转义器/反转义器
JSON转对象
JSON转模式
JS转JSON转换器
ObjGen 转换为 JSON
PHP数组转JSON
tools.json-patch.name
消息包转换为 JSON
Epub 转 Markdown
HTML转Markdown
Markdown Lorem Ipsum
Markdown 到 DOCX
Markdown 差异
Markdown 表格生成器
Markdown 表格美化工具
Markdown 转数据
Markdown 转文本
Markdown 预览
Markdown目录生成器
Markdown编辑器
Markdown转HTML
tools.markdown-format-converter.name
粘贴为Markdown
HTML 转 PDF
PDF加密
PDF压缩器
PDF合并工具
PDF文本提取工具
PDF签名检查器
PDF线性化/FastWeb
PDF解密和解锁
PDF页面提取工具
TOML Linter
TOML转JSON
TOML转YAML
ObjGen 转 HTML
XML Linter
XML格式化器
XML转JSON
XPath测试器
XSLT测试工具
YAML合并器
YAML展开/嵌套化工具
YAML格式化与美化
YAML转JSON转换器
YAML转TOML
AGE密码学
Ansible Vault加密解密
Argon2 哈希尔
Bech32 编码器/解码器
CRC计算器
CSR生成器
ECDSA密钥对生成器
Ed25519密钥对生成器
HMAC生成器
JWT生成器
JWT解析器
Jasypt 字符串加密
Niceware 字节到密码
PGP加密
PGP密钥对生成器
PGP文件加密
Paseto/PASERK公私钥工具
Paseto/PASERK本地工具
RSA/DSA/ECDSA签名器与验证器
RSA加密
RSA密钥对生成器
SAML 解析器
SSL证书转换器
Shamir秘密共享
X.509证书生成器
加密
加密/解密文本
文件哈希器
文本哈希工具
证书/密钥解析器
Active Directory LDAP属性搜索器
Cookie解析器
DMARC报告分析器
DNS 测试器
DNS传播测试器
EMV TLV解码器
ETH交易解码器
GZip/Deflate转换器
HTTPS 测试器
MIME编码转换器
MongoDB ObjectId转换器
Nmap 命令生成器
Outlook MSG解析器
Outlook安全链接解码器
Parquet文件读取器
RJ45 Cat6 接线速查表
SMART原始值转换器
SharePoint分享链接解码器
Snowflake ID提取器
Tcpdump命令生成器
URL 生成器
URL解析器
中端转换器
串口控制台
十六进制编码器/解码器
敏感数据掩码器
文件类型检测器
文本字符集检测器/解码器
死像素测试仪
浮点数转换器
电子邮件解析器
电阻计算器
短链接扩展器
退信邮件解析器
键盘测试器
键码信息
GIF 转 MP4
HEIC转换器
ICO/PNG转换器
OCR图像和PDF
SVG预览器
图像EXIF/元数据/GPS/JPEG质量读取器
图像格式转换器
图像比较
图像调整器
图像转SVG(potrace)
图像颜色反转器
摄像头录制器
水印工具
移除EXIF
移除图片背景
裁剪图片
Bash备忘单
CSS选择器备忘单
Docker Compose 备忘单
Docker SWARM 备忘单
Dockerfile 备忘单
Docker备忘单
Git 备忘单
Git语义提交备忘单
JQ备忘单
JSONPath语法备忘单
K8s备忘单
Markdown备忘单
Nano备忘单
Nginx备忘单
PowerShell 速查表
Sed 备忘单
Tmux 命令速查表
Vim备忘单
XPath语法备忘单
Zellij 命令速查表
chmod 命令速查表
屏幕命令速查表
常用正则表达式备忘单
正则表达式备忘单
ANSI转义测试器
API测试器
CLI命令编辑器
CSS/JS 美化和压缩
Curl转换器
Django 秘密生成器
GitIgnore生成器
Gitattributes 生成器
HEX文件转换器
JSON转Protobuf
JSON转SQL INSERT
JSON转TypeScript
JavaScript去混淆器/解包器
JavaScript美化器
Javascript 混淆器
K6负载测试脚本生成器
Mailto 生成器
Open Graph元标签生成器
Picomatch 测试仪
SQL 参数生成器
SQL压缩器
SQL格式化与美化
Swagger UI测试器
代码/脚本高亮工具
堆栈跟踪美化器
字符串转义工具
引号转换器
数据伪造工具
数据库创建构建器
数据库表生成器
数据库连接字符串生成器
文件分割器
番茄钟计时器
网站图标生成器
三角函数/方程曲线可视化工具
二进制计算器
小费计算器
数学OCR
数学格式转换器
数学表达式计算器
BMI计算器
IBAN验证器与解析器
IES照明指南
ISBN验证器与解析器
ISO 3166国家代码搜索器
ISO 639 搜索器
Luhn验证器
Unicode搜索
人民币大写转换器
信用卡检查器
在线词典
增值税号验证器
日历转换器
服务级别协议计算器
电话号码解析与格式化工具
解释 Shell 命令
货币转换器
跑步配速计算器
软件许可兼容性检查器
AI提示分割器
ASCII艺术文本生成器
GPT 令牌编码器/解码器
GPT令牌估计器
JSON 转卡通
Levenshtein计算器
Lorem ipsum生成器
Mermaid导出器
RSVP 阅读器
Sed 命令生成器
TOON 转 JSON
Tab 键转空格
Unicode 转 GSM-7
Unicode格式化工具
Zalgo生成器/横幅
为 AI 打包文件
从HTML提取文本
列表比较器
列表转换器
唯一单词
图像转ASCII艺术
大小写转换器
字体比较
字符串混淆器
引用生成器
我和 L 检查器
摩尔斯电码转换器
文件夹结构图
文本差异比较
文本统计
文本翻译器
文本转Unicode名称
文本转北约音标字母
智能文本替换器与换行器
正则表达式测试器
社交链接分享者
符文转换器
表情符号选择器
重复行查找器
键盘布局转换器
随机行选择器
ETA计算器
TTL计算器
iCalendar生成器
iCal合并器
iCal文件解析器
倒计时
周数转换器
哪一天?
天数计算器
定时/工作日闹钟
持续时间计算器
日期+持续时间计算器
日期时间转换器
时区转换器
时间闹钟
秒表
GTIN验证器
WiFi二维码生成器
tools.epc-qrcode-generator.name
二维码生成器
二维码联系信息生成器
二维码解码器
条形码生成器
条形码读取器
地理距离计算器
基准测试构建器
百分比计算器
纵横比计算器
卡牌选择器
幸运轮
抛硬币工具
骰子滚动器
SI 前缀转换器
体积单位转换器
体积流量转换器
健身电脑
力单位转换器
功率转换器
加速转换器
压力单位转换器
变频器
温度转换器
照度转换器
能源单位转换器
角度单位转换器
质量单位转换器
速度转换器
长度单位转换器
面积单位转换器
食物能量转换器
BIP39密码短语生成器
Diceware 密码生成器
NanoID生成器
OTP代码生成器
PIN码生成器
UUID生成器
UUID转换器
令牌生成器
密码短语生成器
数字缩写生成器
随机数生成器
.htaccess生成器
/etc/fstab生成器
ARPA解码器
Apache LogRotate 生成器
BIMI DNS生成器
CURL命令生成器
Cloudflare DNS/RDAP 查询
Crontab生成器
DKIM DNS生成器
DMARC DNS生成器
DNSBL 检查器
DNS查询
HAR清理器
Htpasswd/htaccess生成器
IPv4 子网列表
IPv4/6 CIDR转IP范围计算器
IPv4/6范围转CIDR计算器
IPv4/IPv6/IP范围/CIDR在IP范围/CIDR/IP掩码中
IPv4地址转换器
IPv4子网计算器
IPv4范围扩展器
IPv6 ULA生成器
IPv6地址转换器
IPv6子网计算器
IP地理位置
IP子网排除计算器
MAC地址查询
MAC地址生成器
MAC地址转换器
Nginx格式化工具
Option43生成器
PTR DNS生成器
Punycode转换器
RAID可靠性计算器
RAID计算器
Rsync命令生成器
SIP授权
SPF DNS生成器
Shell 命令格式化程序
Shell 命令线性化器
TCP/UDP端口测试器
UFW 命令生成器
WPA预共享密钥生成器
WebSocket测试工具
Whois 检查器
Wireguard 配置生成器
X-VR-SpamCause解码器
ZPOOL RAID计算器
ZPool 备忘单
Zxcvbn 密码强度
chmod计算器
firewalld 命令行生成器
iptables生成器
ping
tools.restic-command-generator.name
tools.url-redirection-checker.name
关闭命令生成器
可视化子网计算器
基本身份验证生成器
多链接下载器
密码强度分析器
我的IP地址
数据传输速率计算器
整数转IP
硬盘计算器
端口号
随机端口生成器
麦克风测试器
CSS到XPath转换器
CSS单位转换器
CSS渐变生成器
CSS美化工具
HTML 转 XHTML
HTML 转数据
HTML压缩器
HTML实体转义
HTML富文本编辑器
HTML清理器
HTML美化器
HTTP状态码
MIME类型
REM像素转换器
SVG占位图生成器
URL文本片段生成器
URL混淆器
URL清理器
URL编码器/解码器
UTM URL生成器
图像转CSS
字符串Slug化
用户代理解析器
色轮
设备信息
颜色对比度检查器
颜色转换器
Base64十六进制数组编码器/解码器
Base64字符串编码器/解码器
Base64文件转换器
CSV转数据
Excel转数据
ULID生成器
Unicode字符转Java实体转换器
dBm 毫瓦转换器
地理坐标转换器
多单位转换器
属性文件转换器
数据存储单位转换器
整数进制转换器
文本转UTF-8二进制
文本转Unicode
环境变量格式转换器
电子邮件规范化工具
种子转磁力链接
罗马数字转换器
能耗与费用计算器
贷款计算器
定时任务表达式生成器

Docker Compose 备忘单

Docker Compose 格式备忘单

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的强大工具。它使用一个 YAML 文件(compose.yaml)来配置应用服务、网络、卷等。该文件允许开发者以声明式的方式描述基础设施和依赖关系,从而更轻松地管理复杂的环境。

无论你是在搭建本地开发环境,还是部署到生产环境,Compose 都能简化编排过程,并让你的配置保持可读、可版本控制。

📁 文件名

compose.yaml

✅ YAML 格式规则

  • 缩进使用 2 个空格(不要使用制表符)
  • 键和值是 区分大小写 的
  • 列表使用 - 表示每一项
  • 包含特殊字符的字符串应使用引号括起来
  • 环境变量可以内联定义,也可以通过 .env 文件定义

🧱 基本结构

services:
  service_name:
    image: image_name:tag
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 'host_port:container_port'
    volumes:
      - ./host_path:/container_path
    environment:
      - VAR_NAME=value
    depends_on:
      - other_service
    networks:
      - custom_network
networks:
  custom_network:
    driver: bridge
volumes:
  custom_volume:

⚙️ 服务(Services)

每个 service 都定义一个容器。

常用服务选项

services:
  web:
    image: nginx:latest
    build:
      context: ./app
      dockerfile: Dockerfile
    command: ['nginx', '-g', 'daemon off;']
    container_name: custom_name
    ports:
      - '8080:80'
    expose:
      - '80'
    environment:
      - DEBUG=true
    env_file:
      - .env
    volumes:
      - ./data:/data
    restart: always
    depends_on:
      - db
    networks:
      - frontend
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost']
      interval: 30s
      timeout: 10s
      retries: 5

🏗️ 构建选项(Build Options)

build:
  context: ./dir
  dockerfile: Dockerfile
  args:
    build_arg: value
  target: build-stage
  • build: 告诉 Compose 如何构建镜像。
    • context: 是包含 Dockerfile 和源代码的目录。
    • dockerfile: 允许你指定自定义的 Dockerfile 名称或路径。

📦 卷(Volumes)

volumes:
  data_volume:
    driver: local
    driver_opts:
      type: none
      device: /path/on/host
      o: bind

挂载卷

volumes:
  - data_volume:/app/data
  - ./local:/container/path
  • volumes: 将宿主机目录或具名卷挂载到容器中。
    • ./src:/app/src 将本地的 src 文件夹挂载到容器中的 /app/src。

🌐 网络(Networks)

networks:
  frontend:
    driver: bridge
  backend:
    driver: overlay
  • networks: 将服务连接到一个或多个自定义网络。可实现服务发现和隔离。

为服务分配网络

services:
  app:
    networks:
      - frontend
      - backend

🌐 端口(Ports)

ports:
  - '3000:3000'
  • ports: 将容器端口映射到宿主机端口。格式为 "宿主机:容器"。常用于将服务暴露给本机访问。

🔐 密钥(Secrets,仅 Docker Swarm)

secrets:
  db_password:
    file: ./db_password.txt

services:
  db:
    secrets:
      - db_password

🔑 配置(Configs,仅 Docker Swarm)

configs:
  my_config:
    file: ./config.txt

services:
  app:
    configs:
      - source: my_config
        target: /etc/config.txt

🧪 健康检查(Healthcheck)

healthcheck:
  test: ['CMD', 'curl', '-f', 'http://localhost']
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 5s
  • healthcheck: 定义 Docker 如何检查容器是否健康。
    • test: 要运行的命令
    • interval: 检查的间隔时间
    • timeout: 等待响应的超时时间
    • retries: 在标记为不健康之前允许失败的次数

🔄 重启策略(Restart Policies)

restart: no         # 从不重启
restart: always     # 总是重启
restart: on-failure # 失败时重启
restart: unless-stopped

🧬 环境变量(Environment Variables)

environment:
  - VAR1=value1
  - VAR2=value2
env_file:
  - .env
  • environment: 在容器内设置环境变量。常用于配置。
  • env_file: 从文件加载环境变量。可以将密钥和配置与 Compose 文件分离。

命令(Command)

command: npm start
  • command: 覆盖 Dockerfile 中定义的默认命令。常用于自定义容器行为。

依赖(Dependencies)

depends_on:
  - db
  • depends_on: 指定服务的启动顺序。在 Compose 中,这并不会等待服务"就绪"——只是"已启动"。

🧹 清理(Clean Up)

docker compose down         # 停止并删除容器、网络、卷
docker compose down -v      # 同时删除具名卷

🚀 命令(Commands)

命令描述
docker compose up启动服务
docker compose up -d以分离(后台)模式启动
docker compose down停止并删除服务
docker compose build构建镜像
docker compose ps列出容器
docker compose logs查看日志
docker compose exec <service> <cmd>在容器中执行命令
docker compose config校验并查看配置

🧠 挂载 GPU / iGPU

Docker Compose 通过 device_requests 字段支持 GPU 访问(Compose v3.8+ 和 Docker 19.03+)。

✅ NVIDIA GPU 示例

services:
  gpu-app:
    image: nvidia/cuda:11.0-base
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

✅ Intel iGPU(通过 VAAPI 或 OpenCL)

services:
  igpu-app:
    image: intel/openvino
    devices:
      - /dev/dri:/dev/dri

🔧 请确保你的宿主机上安装了必要的驱动和运行时(例如 NVIDIA Container Toolkit 或 Intel Media SDK)。

🔄 Compose 与 Swarm YAML 差异

特性Docker Compose (compose.yaml)Docker Swarm (stack.yml)
restart✅ 支持❌ 不支持
depends_on✅ 支持❌ 不支持
deploy❌ 忽略✅ 副本数必需
build✅ 支持❌ 不支持
volumes(bind)✅ 支持✅ 支持
configs / secrets❌ 忽略✅ 支持
healthcheck✅ 支持✅ 支持

🧠 提示: 本地开发请使用 compose.yaml,Swarm 部署请使用 stack.yml。

🧬 Profiles(Compose v3.9+)

Profiles 允许根据当前激活的 profile 有条件地包含服务。这对于区分 dev / test / staging 环境非常有用。

✅ 定义 Profiles

services:
  web:
    image: nginx
    profiles:
      - default

  debug:
    image: busybox
    command: top
    profiles:
      - debug

✅ 激活 Profiles

docker compose --profile debug up

✅ 注意事项

  • 没有 profiles 键的服务始终会被包含。
  • 多个 profile 可以同时激活。
  • 适用于功能开关、可选服务或针对不同环境的配置。

⚔️ YAML 差异:Docker Compose 与 Docker Swarm 模式

Docker Compose 和 Docker Swarm 都使用 YAML 文件来定义服务,但它们用途不同,支持的特性也不同。Compose 针对本地开发和测试进行了优化,而 Swarm 则是为跨集群的生产级编排而设计。

🧭 用途

模式用途
Compose本地开发、测试
Swarm集群部署、扩缩容

🧩 YAML 结构上的关键差异

特性Compose (compose.yaml)Swarm (stack.yml)
build:✅ 支持❌ 忽略
restart:✅ 支持❌ 忽略
depends_on:✅ 支持❌ 忽略
deploy:❌ 忽略✅ 扩缩容、调度必需
configs:❌ 忽略✅ 支持
secrets:❌ 忽略✅ 支持
healthcheck:✅ 支持✅ 支持
volumes:(bind)✅ 支持✅ 支持
networks:✅ 支持✅ 支持
profiles:✅ 支持(v3.9+)❌ 不支持

🔧 仅 Compose 支持的特性

以下特性对本地开发很有用,但在 Swarm 中会被忽略:

build:

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
  • Compose 在本地构建镜像。
  • Swarm 要求使用已推送到镜像仓库的预构建镜像。

restart:

restart: unless-stopped
  • Compose 使用此配置自动重启容器。
  • Swarm 使用 deploy.restart_policy。

depends_on:

depends_on:
  - db
  • Compose 按顺序启动服务。
  • Swarm 会忽略此配置;请使用 healthcheck 和 wait-for-it 脚本。

🛡️ 仅 Swarm 支持的特性

以下特性是 Swarm 独有的,Compose 会忽略:

deploy:

services:
  app:
    deploy:
      replicas: 3
      placement:
        constraints:
          - node.role == manager
      restart_policy:
        condition: on-failure
  • 用于在集群中控制扩缩容、调度和重启行为。

configs: 和 secrets:

configs:
  app_config:
    file: ./config.yml

secrets:
  db_password:
    file: ./password.txt
  • 用于在节点间安全地分发配置和密钥。

placement:(位于 deploy 内)

placement:
  constraints:
    - node.labels.env == production
  • 根据 label 将服务分配到指定节点。

🧪 健康检查(两者均支持)

healthcheck:
  test: ['CMD', 'curl', '-f', 'http://localhost']
  interval: 30s
  timeout: 10s
  retries: 3
  • 在 Compose 和 Swarm 中均可使用。
  • 在 Swarm 中,健康状态会影响服务的重新调度。

📦 卷的差异

类型ComposeSwarm
Bind mount(绑定挂载)✅✅
Named volume(具名卷)✅✅
External volume(外部卷)✅✅
Volume driver options(卷驱动选项)✅✅

Swarm 要求外部卷必须预先在所有节点上创建好。

🧠 总结

特性类别ComposeSwarm
本地构建✅❌
集群扩缩容❌✅
Secrets / Configs❌✅
Profiles✅❌
重启策略✅✅(通过 deploy)
服务依赖✅❌

🧭 提示: 开发请使用 compose.yaml,Swarm 请使用 stack.yml。你也可以将配置拆分为多个文件,或使用 kompose 等工具将 Kubernetes 的清单进行转换。

📚 资源

  • Compose 文件参考
  • Docker CLI 参考
  • NVIDIA GPU 支持
  • Intel GPU 支持