SuperAPI AI 工具集

docker-compose

部署与运维

查看项目

更新于 10-15 23:48

技能介绍

用途:Docker Compose 用于多容器应用的编排,通过声明式 compose 文件定义服务、网络、卷与环境变量,并以单一命令管理整套容器栈。

主要能力:支持服务定义、网络与卷配置、环境变量、healthcheck 健康检查、profiles 服务分组、depends_on 依赖关系,以及镜像构建与拉取、服务扩缩容、一次性命令执行等。

使用方式:命令行有两种形式,docker compose(v2 插件)或 docker-compose(v1 独立版,已弃用,建议使用 v2)。配置文件按 compose.yml、compose.yaml、docker-compose.yml 顺序搜索。默认项目名为 compose 文件所在目录名。安装:Docker Desktop 自带;Compose v2 插件可用 apt install docker-compose-plugin。常用命令:docker compose up -d 后台启动全部服务;docker compose down 停止并移除容器;加 -v 同时删除卷;docker compose logs -f 查看日志,可指定服务名;docker compose build 或 up -d --build 重建镜像;up -d --scale web=3 扩缩容;run --rm 运行一次性命令;exec 进入运行中的服务;ps 查看运行服务;config 校验配置文件;pull 拉取最新镜像;restart 重启单个服务。

常见问题:服务无法启动多为配置错误或端口冲突,可查看日志;network not found 常由旧网络残留导致,先 down 再 up;卷数据丢失通常是误用 down -v;启动顺序错误需依赖健康检查;值中的 $ 需用 $$ 转义;环境变量未被读取需检查 .env 文件位置或使用 env_file;找不到 compose 文件需确认目录与文件名。

限制与注意:down 会移除容器和网络,stop 仅停止;命名卷数据在两者下均保留,除非加 -v。项目名决定网络与卷名称前缀,可用 -p 或 COMPOSE_PROJECT_NAME 修改,多套件并行时需注意。depends_on 默认只等待容器启动,而非服务就绪,需配合 condition: service_healthy 与 HEALTHCHECK 才可靠。构建上下文 build: . 使用当前目录,缺少 .dockerignore 会拖慢构建。环境变量优先级为 shell 环境 > .env 文件 > compose 中 environment > env_file,shell 始终优先。带 profile 的服务默认不启动,需用 --profile 显式启用。v1 与 v2 存在行为差异。其余参考资料暂未提供完整内容。