提示:本网站现在为维护调试状态

Docker Compose 本番デプロイ実践

Choyeon
Choyeon
2026年8月25日 1 分で読了 676 閲覧
251 字 1,562 文字 更新日 2026年11月8日
Docker Compose 本番デプロイ実践
目次

Docker Compose Production Deployment Guide

Containerization is standard for modern delivery. Docker Compose simplifies multi-service orchestration but production demands extra safeguards.

Service Configuration and Resource Limits

Set reasonable CPU/memory limits per service to prevent cascading failures. Pair with healthchecks to auto-restart unhealthy containers.

version: "3.9"
services:
  web:
    build: { context: ., dockerfile: Dockerfile, target: production }
    image: registry.example.com/app:${TAG:-latest}
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/health"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 40s
    deploy:
      resources:
        limits: { cpus: "2.0", memory: 2G }
        reservations: { cpus: "0.5", memory: 512M }
    logging:
      driver: json-file
      options: { max-size: "10m", max-file: "5" }
    networks: [frontend, backend]
    secrets: [db_password]
    depends_on:
      db: { condition: service_healthy }
  db:
    image: postgres:16-alpine
    volumes: [pgdata:/var/lib/postgresql/data]
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U app"]
      interval: 10s
      timeout: 5s
      retries: 5
volumes: { pgdata: null }
networks: { frontend: null, backend: { internal: true } }
secrets: { db_password: { file: ./secrets/db_password.txt } }

Network and Security Isolation

Place internal services on internal networks without exposed ports. Mount credentials via secrets instead of hardcoding in images.

Config Item Development Production Recommended
restart no unless-stopped Enable in prod
healthcheck Optional Required 30s/3 retries
resource limits None Required 2C CPU/2G RAM
logging driver default json-file max-size 10m
network mode bridge split networks internal for DB

Best Practices

Use multi-stage builds to shrink image size, combine with .dockerignore, and regularly prune dangling images and volumes.

X微博Telegram

筆者について

投票

你最希望 Rosetta 优先加入哪项功能?

社区投票(演示数据,可后台删除)

コメント (6)

0 / 3000
AI炼丹学徒
AI炼丹学徒2026年9月26日

哈哈,备份不验证等于没备份那段我笑了,我之前就是吃了这个大亏,数据库备份了半年才发现根本恢复不了。

开源贡献者小Z
开源贡献者小Zoss-z.dev2026年9月26日

终于找到一篇不吹不黑的 K8s 入门指南了,之前看的文章要么太浅要么上来就一堆概念,你这个循序渐进的节奏我太喜欢了!

摸鱼达人小王
摸鱼达人小王2026年9月26日

干货满满,收藏吃灰!

嵌入式极客
嵌入式极客embedded-lab.io2026年9月26日

太好了!终于有人把 CI/CD 的完整流程讲清楚了,之前看了好多文章都是只讲一半,跟着这篇一步步跑通了整个流水线。

自由撰稿人阿秋
自由撰稿人阿秋qiuwrites.blog2026年9月25日

补充一个小技巧:用 kubectl 的 kubectx + kubens 插件切换集群和命名空间超级方便,谁用谁知道。

熬夜攻城狮
熬夜攻城狮nightowl.tech2026年9月25日

看到你那个 Nginx 配置示例,有个安全问题:server_tokens 建议关掉,不然会暴露 Nginx 版本号给攻击者。

関連記事

CI/CD パイプライン設計:GitHub Actions + Cache + Matrix Build

CI/CD パイプライン設計:GitHub Actions + Cache + Matrix Build

本番級GitHub Actionsパイプライン設計:npm/pipキャッシュ、マルチバージョンNode/Python Matrix並列ビルド、Dockerレイヤーキャッシュ、Lint/Test/Build/Publish段階化、条件実行、環境マトリクス、失敗リトライとリリースゲートベストプラクティス。完全ワークフロー付き。

1 分で読了
Git 高度なワークフロー

Git 高度なワークフロー

Git上級操作:Interactive Rebase、Cherry-pick、Bisectによるバグ特定、reflogとresetによる誤操作からの復旧。

1 分で読了
K8s Pod ライフサイクル + Init コンテナ + Sidecar

K8s Pod ライフサイクル + Init コンテナ + Sidecar

K8s Pod状態遷移Pending→Terminated、PostStart/PreStopフック、Init Container依存保証、Sidecarパターン、グレースフル停止ゼロダウンタイム設定。

1 分で読了
Monorepo ツールチェーン:Turborepo + pnpm workspace

Monorepo ツールチェーン:Turborepo + pnpm workspace

大規模フルスタックプロジェクト向けMonorepo完全ガイド:pnpm workspaceによる依存関係統合管理、Turborepoによるタスクオーケストレーション・インクリメンタルビルド・リモートキャッシュ。Nx/Lerna比較、コード共通化とリリースベストプラクティス。

1 分で読了
Zero Trust セキュリティアーキテクチャ入門:決して信用せず、常に検証

Zero Trust セキュリティアーキテクチャ入門:決して信用せず、常に検証

Zero Trust セキュリティモデル体系入門:「決して信用せず、常に検証」を原則に、伝統的 VPN=内部信頼の境界防衛思考を打ち砕く。身元認証(MFA/SAML)、端末健康チェック、最小権限RBAC、マイクロセグメンテーションmTLS、継続的信用スコア、可視化監査ログの6本柱を解説、実装ロードマップ付き。

1 分で読了
Linux 性能チューニング:perf + bpftrace + BCC

Linux 性能チューニング:perf + bpftrace + BCC

CPU/メモリ/IO/ネットワーク4次元:perfによるサンプリング、bpftraceワンライナー、BCC biolatency/offcputimeを用いた本番ボトルネック特定とトラブルシューティング。

1 分で読了