docker exec
包与运行时
用法
docker exec -it <container> <command>在一个已经运行的容器里再跑一个进程;容器停着就会失败,而精简镜像里没有 bash,得用 sh 进去。
常用选项
| 选项 | 含义 |
|---|---|
| -it | interactive terminal, for a shell |
| -u <user> | run as another user, e.g. root |
| -w <dir> | start in that directory |
| -e KEY=value | set a variable for this process only |
| -d | run it in the background |
示例
docker exec -it web basha shell inside a running container
docker exec -u root -it web shas root, and sh because slim images have no bash
docker exec -it db psql -U postgresruns a client that lives inside the container
问题永远是什么装到哪里:装进这个项目,还是装到整台机器上。
怎么看
- 方括号 [ ] 表示这部分可以不写。
- 省略号 … 表示可以写多个。
- 选项区分大小写——有些命令里 -r 和 -R 不是一回事。
常见问题
Q. docker exec 是做什么的?
在一个已经运行的容器里再跑一个进程;容器停着就会失败,而精简镜像里没有 bash,得用 sh 进去。
Q. 怎么写?
docker exec -it <container> <command> —— 方括号表示可以省略的部分。
Q. 值得记的选项有几个?
这里列了 5 个,完整列表在 man docker。这条命令属于包与运行时。
相关命令
man 手册: man docker-exec