Docker命令行参考(18) – docker exec在运行中的容器执行一个命令

  1. Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  2.  
  3. Run a command in a running container
  4.  
  5.   -d, --detach         Detached mode: run command in the background
  6.   --detach-keys        Override the key sequence for detaching a container
  7.   --help               Print usage
  8.   -i, --interactive    Keep STDIN open even if not attached
  9.   --privileged         Give extended privileges to the command
  10.   -t, --tty            Allocate a pseudo-TTY
  11.   -u, --user           Username or UID (format: <name|uid>[:<group|gid>])

docker exec命令在一个运行中的容器执行一个新命令。
当容器的主进程(PID 1)正在运行时,使用docker exec命令执行的命令才执行,并且当容器重启时,此命令不会重启。
如果容器暂停,那么docker exec命令将遇到一个错误:

  1. $ docker pause test
  2. test
  3. $ docker ps
  4. CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
  5. 1ae3b36715d2        ubuntu:latest       "bash"              17 seconds ago      Up 16 seconds (Paused)                       test
  6. $ docker exec test ls
  7. FATA[0000] Error response from daemon: Container test is paused, unpause the container before exec
  8. $ echo $?
  9. 1

示例

  1. $ docker run --name ubuntu_bash --rm -i -t ubuntu bash

这将创建一个名为ubuntu_bash的容器并启动一个Bash会话。

  1. $ docker exec -d ubuntu_bash touch /tmp/execWorks

这会在后台在运行中的容器内创建一个新的文件/tmp/execWorks。

  1. $ docker exec -it ubuntu_bash bash

这会在容器ubuntu_bash中创建一个新的Bash会话。

标签:容器Docker 发布于:2019-11-19 12:17:47