docker exec
命令允许你在正在运行的 Docker 容器内部执行命令,而不需要进入交互式 shell。这是在容器中执行一次性命令或调试问题的有用工具。
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
-i
或 --interactive
: 保持 STDIN 打开,即使没有附加-t
或 --tty
: 分配一个伪终端-d
或 --detach
: 在后台运行命令-e
或 --env
: 设置环境变量-u
或 --user
: 指定用户名或 UID-w
或 --workdir
: 指定工作目录docker exec my-container ls /app
docker exec -it my-container /bin/bash
这将打开一个交互式 bash shell 在容器中。
docker exec -w /app my-container ls
docker exec -u root my-container whoami
docker exec -d my-container touch /tmp/testfile
docker exec -e VAR1=value1 -e VAR2=value2 my-container env
docker exec
/bin/bash
),你可能需要使用其他可用的 shell-it
选项时,可以使用 exit
或 Ctrl+D 退出交互式会话docker run
的区别docker run
创建一个新容器并运行命令docker exec
在已运行的容器中执行命令# 检查运行的进程
docker exec my-webserver ps aux
# 检查网络连接
docker exec my-webserver netstat -tuln
# 检查日志文件
docker exec my-webserver tail -f /var/log/nginx/error.log
通过 docker exec
,你可以灵活地与运行中的容器交互,而无需中断其正常运行。