在使用 docker-compose.yml 管理多个服务时,有时我们只想启动其中某一个服务(例如只启动数据库或只启动 Web 服务),而不想启动整个项目。本文将介绍如何通过 Docker Compose 命令实现这一目标。
基本语法
使用以下命令即可只启动指定的服务:
docker-compose up <service_name>
例如,如果你的 docker-compose.yml 中定义了名为 web 和 db 的服务,你可以运行:
docker-compose up web
这将只启动 web 服务及其依赖(如果在 depends_on 中声明)。
注意事项
- 默认情况下,
docker-compose up会构建并启动所有服务。 - 指定服务名后,只会启动该服务和其显式依赖的服务。
- 若不想自动启动依赖项,可结合
--no-deps参数使用:
docker-compose up --no-deps web
其他常用选项
-d:后台运行容器
docker-compose up -d web--build:在启动前重新构建镜像
docker-compose up --build web
示例 docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "8000:8000"
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_DB: myapp
在此配置中,执行 docker-compose up web 会同时启动 db(因为 web 依赖它);而 docker-compose up --no-deps web 则仅启动 web。
总结
通过指定服务名称,Docker Compose 提供了灵活的单服务调试与开发能力,非常适合本地开发环境中的快速测试与迭代。