Docker Compose 快速入门
当你开始反复复制一长串 docker run,或者服务已经不止一个时,继续靠命令行硬拼通常不是好主意。这个时候,把配置写进 compose.yaml 会更稳。
什么情况下该上 Compose
出现下面任意一种,我就会考虑换 Compose:
- 服务超过一个
- 需要固定端口、环境变量、数据卷
- 想让别人也能一把启动
- 你已经把启动命令记到了笔记或脚本里
一个最小可用的 compose.yaml
services:
web:
image: nginx:stable
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
redis:
image: redis:7
command: ["redis-server", "--appendonly", "yes"]
volumes:
- redis-data:/data
restart: unless-stopped
volumes:
redis-data:
这份配置做了几件事:
- 起一个
nginx服务,对外暴露8080 - 把本地
./html作为静态页面目录挂进去 - 起一个
redis服务,并把数据持久化到 named volume
最常用的 Compose 命令
启动
docker compose up -d
看服务状态
docker compose ps
跟日志
docker compose logs -f
docker compose logs -f web
进入某个服务容器
docker compose exec web sh
docker compose exec redis redis-cli ping