docker compose up

描述

  • 构建 (build)、(重新)创建 (re-create)、启动 (start) 并 附加 (attach) 服务对应的容器。

  • 如果某些服务还没有运行,它也会启动与之关联 (linked) 的服务。

  • docker compose up 会聚合 (aggregate) 各个容器的输出,就像使用 docker compose logs --follow

  • 命令退出时(如果不是后台模式,未使用 --detach),所有容器都会停止。

  • 如果使用 --detach(或 -d),容器将在后台运行 (detached 模式),命令结束后它们仍然保持运行。

  • 如果某个服务已经有对应的容器,并且在创建之后服务的配置或镜像 (image) 改变了,docker compose up 会停止并重新创建这些容器。但它会保留挂载 (mount) 的卷 (volumes)。

  • 如果你不想让 Compose 重新创建已经存在的容器,可以使用 --no-recreate

  • 如果你想 强制 停止并重新创建所有容器(即使配置或镜像没有变更),可以使用 --force-recreate

  • 如果执行过程中出现错误,命令会返回退出码 (exit code) 1

  • 如果使用 SIGINT (例如 Ctrl + C) 或 SIGTERM 中断进程,所有容器将停止,并且退出码为 0

选项

下面是 docker compose up 支持的主要命令行选项及其含义 (根据文档整理):

选项
默认 / 说明
描述

--abort-on-container-exit

如果 任何 容器停止 (exit),则停止所有容器。这个选项与 -d (detach) 不兼容。

--abort-on-container-failure

如果有容器 失败退出(退出码非零),就停止所有容器。与 -d 冲突。

--always-recreate-deps

总是重新创建依赖 (dependency) 容器。与 --no-recreate 不兼容。

--attach [SERVICE …]

限定只附加 (attach) 指定服务 (service) 的日志/输出。

--attach-dependencies

自动附加 (attach) 指定服务所依赖 (linked) 的其他服务容器的日志输出。

--build

在启动容器之前构建镜像 (如果需要的话)。

-d, --detach

后台运行 (detached 模式) — 容器启动后命令立即返回。

--exit-code-from SERVICE

返回指定服务容器的退出码 (exit code)。使用此选项隐含 --abort-on-container-exit

--force-recreate

强制重新创建容器,即使它们的配置或镜像没有变化。

--menu

启用交互式快捷菜单 (interactive menu);与 --detach 不兼容。 (也可以通过环境变量 COMPOSE_MENU 控制)

--no-attach

不附加 (attach) 到任何服务容器的日志/输出。

--no-build

不构建镜像(即使本地没有镜像也不 build)。

--no-color

输出为单色 (无 ANSI 颜色),禁用彩色提示。

--no-deps

不启动服务所依赖 (linked) 的其他服务。

--no-log-prefix

日志行中不打印前缀 (log prefix)。

--no-recreate

如果容器已存在,则不重新创建它们。与 --force-recreate 冲突。

--no-start

创建服务 (容器) 但不启动它们。

--pull <policy>

在启动前拉取镜像 (pull),策略可以是 "always""missing""never"

--quiet-pull

拉取镜像时不打印拉取 (pull) 进度。

--remove-orphans

移除 (删除) Compose 文件中 未定义 但仍在运行 (orphan) 的容器。

-V, --renew-anon-volumes

对匿名卷 (anonymous volumes) 重新创建 (不使用旧容器里的匿名卷)。

--scale SERVICE=NUM

将某个服务实例扩展 (scale) 到指定数量。如果指定了 scale,会覆盖 Compose 文件中对应服务的 scale 设置。

-t, --timeout TIMEOUT

默认值约为 10 秒 (取决版本)

停止容器时,等待信号 (SIGTERM) 的超时时间 (以秒为单位)。

--timestamps

在日志输出中显示时间戳 (timestamp)。

--wait

等待服务 运行或者健康 (health)。该选项会在后台 (隐含 detach) 模式下运行。

--wait-timeout

等待服务变为运行 / 健康的最大时间 (以秒为单位)。

-w, --watch

监视 (watch) 源代码 (或文件),如果文件发生更改,就重新构建 / 刷新容器。

最后更新于

这有帮助吗?