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,你可以灵活地与运行中的容器交互,而无需中断其正常运行。