docker exec

在运行中的容器内执行命令

语法

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

参数

参数说明示例级别
-it 交互式终端模式 docker exec -it web bash 常用
-d --detach 后台执行 docker exec -d web touch /tmp/test 常用
-e --env 设置环境变量 docker exec -e DEBUG=1 web node script.js 进阶
-u --user 指定执行用户 docker exec -u root web apt update 进阶
-w --workdir 指定工作目录 docker exec -w /app web ls 进阶

示例

进入容器 Shell

docker exec -it my-container bash
如果没有 bash 可以试 sh

查看容器内文件

docker exec web cat /etc/nginx/nginx.conf
不进入交互模式直接执行命令

以 root 身份执行

docker exec -u root web apt-get update
容器默认用户权限不够时使用

在容器中运行脚本

docker exec -w /app web python manage.py migrate
指定工作目录执行

常见错误

Error: No such container 容器不存在或名称错误,用 docker ps 确认容器名
OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found 容器中没有 bash,改用 sh:docker exec -it container sh
Error response from daemon: Container is not running 容器已停止,需要先 docker start 启动

技巧

相关命令