docker
在 正在运行 的容器里执行命令。
相当于 docker exec,但作用对象是 Compose 管理的服务 (service) 容器。
docker exec
使用这个子命令,你可以在服务对应的容器里运行任意命令。
默认情况下,命令会分配一个 TTY (伪终端),因此你可以像下面这样进入交互式 shell:
docker compose exec web sh
这样能获得一个交互式提示符。
默认行为:Compose 会进入交互模式并分配 TTY;而等效的 docker exec 命令如果要有这个行为,通常需要加 --interactive --tty。
--interactive --tty
同时,Compose 支持 --interactive 和 --tty 这些标志,以便在脚本里强制启用或禁用交互 / TTY 模式(例如 --interactive=false 可以在脚本中禁用交互)。
--interactive
--tty
--interactive=false
-d, --detach
—
分离 (detached) 模式:命令在后台运行,不附加当前终端。
-e, --env KEY=VAL
设置环境变量 (可以指定多个 -e)。
-e
--index
如果服务有多个副本 (replicas),可以指定执行命令的容器索引 (index)。
-T, --no-tty
true (默认会分配 TTY)
true
禁用伪 TTY 分配。如果你不想要 TTY (例如在脚本里),可以加这个选项。
--privileged
给执行命令的进程扩展权限 (privileged 模式)。
-u, --user USER
以指定用户身份在容器里运行命令。
-w, --workdir DIR
指定在容器里执行命令时的工作目录 (workdir)。
最后更新于2个月前