- Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
-
- Run a command in a running container
-
- -d, --detach Detached mode: run command in the background
- --detach-keys Override the key sequence for detaching a container
- --help Print usage
- -i, --interactive Keep STDIN open even if not attached
- --privileged Give extended privileges to the command
- -t, --tty Allocate a pseudo-TTY
- -u, --user Username or UID (format: <name|uid>[:<group|gid>])
docker exec命令在一个运行中的容器执行一个新命令。
当容器的主进程(PID 1)正在运行时,使用docker exec命令执行的命令才执行,并且当容器重启时,此命令不会重启。
如果容器暂停,那么docker exec命令将遇到一个错误:
- $ docker pause test
- test
- $ docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 1ae3b36715d2 ubuntu:latest "bash" 17 seconds ago Up 16 seconds (Paused) test
- $ docker exec test ls
- FATA[0000] Error response from daemon: Container test is paused, unpause the container before exec
- $ echo $?
- 1
示例
- $ docker run --name ubuntu_bash --rm -i -t ubuntu bash
这将创建一个名为ubuntu_bash的容器并启动一个Bash会话。
- $ docker exec -d ubuntu_bash touch /tmp/execWorks
这会在后台在运行中的容器内创建一个新的文件/tmp/execWorks。
- $ docker exec -it ubuntu_bash bash
这会在容器ubuntu_bash中创建一个新的Bash会话。