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)。
最后更新于
这有帮助吗?