Linux入门教程:Docker命令行参考(18) – docker exec在运行中的容器执行一个命令, 当容器的主进程(P


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会话。

相关内容