首页·终端命令

docker exec

包与运行时

用法

docker exec -it <container> <command>

在一个已经运行的容器里再跑一个进程;容器停着就会失败,而精简镜像里没有 bash,得用 sh 进去。

常用选项

选项含义
-itinteractive terminal, for a shell
-u <user>run as another user, e.g. root
-w <dir>start in that directory
-e KEY=valueset a variable for this process only
-drun it in the background

示例

docker exec -it web bash

a shell inside a running container

docker exec -u root -it web sh

as root, and sh because slim images have no bash

docker exec -it db psql -U postgres

runs 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