docker compose exec

docker

描述

  • 正在运行 的容器里执行命令。

  • 相当于 docker exec,但作用对象是 Compose 管理的服务 (service) 容器。

  • 使用这个子命令,你可以在服务对应的容器里运行任意命令。

  • 默认情况下,命令会分配一个 TTY (伪终端),因此你可以像下面这样进入交互式 shell:

    docker compose exec web sh

    这样能获得一个交互式提示符。

  • 默认行为:Compose 会进入交互模式并分配 TTY;而等效的 docker exec 命令如果要有这个行为,通常需要加 --interactive --tty

  • 同时,Compose 支持 --interactive--tty 这些标志,以便在脚本里强制启用或禁用交互 / TTY 模式(例如 --interactive=false 可以在脚本中禁用交互)。


选项

选项
默认值 / 说明
描述

-d, --detach

分离 (detached) 模式:命令在后台运行,不附加当前终端。

-e, --env KEY=VAL

设置环境变量 (可以指定多个 -e)。

--index

如果服务有多个副本 (replicas),可以指定执行命令的容器索引 (index)。

-T, --no-tty

true (默认会分配 TTY)

禁用伪 TTY 分配。如果你不想要 TTY (例如在脚本里),可以加这个选项。

--privileged

给执行命令的进程扩展权限 (privileged 模式)。

-u, --user USER

以指定用户身份在容器里运行命令。

-w, --workdir DIR

指定在容器里执行命令时的工作目录 (workdir)。


最后更新于

这有帮助吗?