系列:容器部署基础
- Docker 安装与使用教程:从零部署第一个容器服务
- Dockerfile 入门:构建自己的应用镜像
- Docker Compose 使用指南:管理多容器服务
- Docker 数据卷与备份:数据库容器怎么保护数据
- Docker 网络与端口映射:容器之间怎么通信
- Docker 日志和排障:logs、exec、inspect、stats
- 用 Docker 部署一个 Python Web 项目
- Nginx 反向代理入门:静态文件、HTTPS 和 Web 服务转发
- HTTPS 和证书部署指南:Let’s Encrypt、Cloudflare、Nginx 怎么配
- Docker 生产环境部署注意事项:镜像、日志、数据卷和健康检查
一个真实服务通常不止一个容器:Web、数据库、Redis、Nginx。手动 docker run 会很快失控,Docker Compose 就是用一个文件管理这些容器。
compose.yml
一个 Compose 文件可以先写得很朴素:服务、端口、环境变量、数据卷。等项目稳定后,再补健康检查、资源限制和更多网络配置。
services: web: build: . ports: - "127.0.0.1:8000:8000" env_file: - .env depends_on: - db
db: image: postgres:16 environment: POSTGRES_PASSWORD: password volumes: - pgdata:/var/lib/postgresql/data
volumes: pgdata:启动:
docker compose up -d这份配置里,Web 服务自己构建镜像,数据库直接使用官方镜像。数据库数据放进 volume,容器重建时数据不会跟着丢。
常用命令
日常维护基本围绕“看状态、看日志、重启、停止、更新”这几个动作,不需要一开始记很多参数。
docker compose psdocker compose logs -fdocker compose restart webdocker compose downdocker compose pull如果要重建镜像:
docker compose up -d --build改了 Dockerfile 或依赖文件时才需要重建镜像;只改 Compose 配置,通常重新 up -d 就够了。
网络
Compose 里的服务默认可以用服务名互相访问。Web 连接数据库时,host 写 db,不是 127.0.0.1。
常见问题
depends_on 只保证启动顺序,不保证数据库已经准备好。应用侧仍然要处理连接重试。
数据卷不要随便删。docker compose down -v 会删除 volume,数据库数据也会没。
总结
Compose 适合单机部署和本地开发,把多容器配置写成文件。先学 Dockerfile 入门:构建自己的应用镜像,再用 Compose 编排服务,会比手写一堆 docker run 稳。更多细节看 Docker Compose 文档。