非常教程

Docker 17参考手册

引擎: CLI | Engine: CLI

docker exec

描述

在正在运行的容器中运行命令

使用

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

备选方案

名字,简写

默认

描述

--detach, -d

false

分离模式:在后台运行命令

--detach-keys

覆盖分离容器的键序列

--env,-e

设置环境变量

--interactive, -i

false

即使没有连接,也要保持STDIN打开

--privileged

false

给命令赋予扩展权限

--tty, -t

false

分配一个伪TTY

--user,-u

用户名或UID(格式:<名称| uid>:<组| gid>)

父命令

命令

描述

docker

Docker CLI的基本命令。

扩展描述

docker exec命令在正在运行的容器中运行新命令。

该命令docker exec仅在容器的主进程(PID 1)正在运行时使用运行开始,并且如果容器重新启动,则不会重新启动该命令。

COMMAND 将在容器的默认目录中运行。它的底层映像有一个在其 Dockerfile 中使用 WORKDIR 指令指定的自定义目录,这将用于替代。

COMMAND 应该是可执行文件,链接或引用的命令将不起作用。例如:docker exec -ti my_container "echo a && echo b"不会工作,但docker exec -ti my_container sh -c "echo a && echo b"会。

实例

在正在运行的容器上运行docker exec

首先,启动一个容器。

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

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

接下来,在容器上执行一个命令。

$ docker exec -d ubuntu_bash touch /tmp/execWorks

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

接下来,bash在容器上执行一个交互式 shell 。

$ docker exec -it ubuntu_bash bash

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

接下来,在当前的 bash 会话中设置一个环境变量。

$ docker exec -it -e VAR=1 ubuntu_bash bash

这将在ubuntu_bash环境变量$VAR设置为“1” 的容器中创建一个新的 Bash 会话。请注意,此环境变量仅在当前的 Bash 会话中有效。

尝试在已暂停的容器上运行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

引擎: CLI | Engine: CLI相关

1.守护进程CLI参考(dockerd)(引擎) | Daemon CLI reference (dockerd) (Engine)
2.docker
3.docker attach
4.docker build
5.docker checkpoint
6.docker checkpoint create
7.docker checkpoint ls
8.docker checkpoint rm
9.docker commit
10.docker config
11.docker config create
12.docker config inspect
13.docker config ls
14.docker config rm
15.docker container
16.docker container attach
17.docker container commit
18.docker container cp
19.docker container create
20.docker container diff
21.docker container exec
22.docker container export
23.docker container inspect
24.docker container kill
25.docker container logs
26.docker container ls
27.docker container pause
28.docker container port
29.docker container prune
30.docker container rename
31.docker container restart
32.docker container rm
33.docker container run
34.docker container start
35.docker container stats
36.docker container stop
37.docker container top
38.docker container unpause
39.docker container update
40.docker container wait
41.docker cp
42.docker create
43.docker deploy
44.docker diff
45.docker events
46.docker export
47.docker history
48.docker image
49.docker image build
50.docker image history
51.docker image import
52.docker image inspect
53.docker image load
54.docker image ls
55.docker image prune
56.docker image pull
57.docker image push
58.docker image rm
59.docker image save
60.docker image tag
61.docker images
62.docker import
63.docker info
64.docker inspect
65.docker kill
66.docker load
67.docker login
68.docker logout
69.docker logs
70.docker network
71.docker network connect
72.docker network create
73.docker network disconnect
74.docker network inspect
75.docker network ls
76.docker network prune
77.docker network rm
78.docker node
79.docker node demote
80.docker node inspect
81.docker node ls
82.docker node promote
83.docker node ps
84.docker node rm
85.docker node update
86.docker pause
87.docker plugin
88.docker plugin create
89.docker plugin disable
90.docker plugin enable
91.docker plugin inspect
92.docker plugin install
93.docker plugin ls
94.docker plugin push
95.docker plugin rm
96.docker plugin set
97.docker plugin upgrade
98.docker port
99.docker ps
100.docker pull
Docker 17

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06