docker exec笔记

作用

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

语法

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

OPTIONS说明

--detach , -d分离模式:在后台运行命令
--detach-keys覆盖用于分离容器的键序列
--env ,-e** API 1.25+** 设置环境变量
--env-file** API 1.25+** 读入环境变量文件
--interactive , -i即使未连接,也要保持 STDIN 打开
--privileged为命令授予扩展权限
--tty , -t分配一个伪 TTY
--user , -u用户名或 UID(格式:<name
--workdir , -wAPI 1.35+
容器内的工作目录

例子

运行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

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

默认情况下,docker exec命令在创建容器时在同一工作目录集中运行。

$ docker exec -it ubuntu_bash pwd
/

您可以为要执行的命令选择工作目录

$ docker exec -it -w /root ubuntu_bash pwd
/root

尝试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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值