问题标签 [docker-exec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1367 浏览

docker - 如何对多个容器运行单个 docker exec 命令

我目前正在运行一个 mac mini 主机,可以随时运行 2 到 6 个由同一个代理构建的 docker 容器。容器充当构建代理,但时不时地构建失败并且无法正确清理。这会导致剩余的文件占用空间。

我想设置和 cron 作业,每晚运行,对每个容器执行 docker exec 命令并删除我的构建目录。

我试过简单的: docker exec -it `docker ps -q` ls /root/build-dir

但这失败了: OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caused "exec: \"ee89958ce4bc\": executable file not found in $PATH": unknown

但是,这有效: docker exec -it ee89958ce4bc ls /root/build-dir

有没有一种方法可以对多个容器使用 docker exec,而无需编写复杂的脚本来遍历来自 docker ps 的容器 ID?

注意:我不想更改 docker 容器并在那里添加 cron 作业。我希望它在主机上运行

0 投票
1 回答
1738 浏览

docker - 如何使用导出命令通过 docker exec 设置环境变量?

我有一个使用祖先的正在运行的 docker 容器my_base_image。现在当容器运行时,我可以使用 export 命令设置环境变量docker exec吗?如果是,如何?

我尝试使用以下方法,但不起作用

基本上我想将 my_env_var=hey 设置为 docker 容器内的环境变量。我知道这可以通过在 Dockerfile 中使用.env_fileenv键入 docker-compose &ENV以多种方式完成。但我只想知道是否可以使用 docker exec 命令

0 投票
1 回答
125 浏览

docker - 在 docker exec 命令之间保存当前目录

我有一个命令列表,我需要一个一个地向正在运行的 docker 容器发出这些命令。但是,当我在容器中“cd”时,它没有按预期工作。例如:

将打印输出example而不是file. 我应该如何正确执行一系列语句,但在它们执行之间保留工作目录?最好,如果可以在不连接所有命令的情况下做到这一点?

0 投票
1 回答
221 浏览

docker - 如何在容器中执行动态代码?

我正在从事一个涉及基于浏览器的代码编辑器的个人项目(想想https://repl.it)。我的计划:

1) 不断地将正在写入的代码流式传输到 kubernetes 上的远程 docker 卷。

2)当用户按下“运行”时执行此代码。

我已经开始研究流媒体基础设施,并且很好地掌握了我想要如何做的事情。然而,关于代码执行,我需要一些指导。

想法 A:我在想我可以有两个 docker 容器,一个 Web 服务器和一个“环境”,位于同一个 VM 上。当请求进入网络服务器时,它将docker exec ...在环境中运行。

想法 B:我使用kubectl, 专门kubectl exec用于在容器上执行代码。

有几点需要注意。我想让“环境”容器可互换,即我的应用程序应该能够支持python、js等。有什么想法吗?

0 投票
1 回答
111 浏览

docker - 启动时无法跳转到 nginx docker 容器

我可以使用以下命令启动并执行到 ubuntu docker 容器中:

但是,当我尝试对 nginx 服务器执行相同操作时,我得到一个空白控制台(尽管它确实在此处打印日志):

我可以通过在 nginx 服务器运行时运行附加命令来执行:

知道我做错了什么或者这是预期的行为吗?

0 投票
2 回答
6188 浏览

docker - 写入正在运行的 docker 容器的标准输入

假设我将 docker 容器作为守护进程运行:

有没有办法写入该容器的标准输入?就像是:

上次我检查-i和标志在与命令-d一起使用时是互斥的。docker run

0 投票
0 回答
148 浏览

docker - docker exec 和 docker container exec 的区别

“docker exec”和“docker container exec”有什么区别?“docker commit”和“docker container commit”的区别是一样的吗?

我研究了很多,但找不到任何东西。感谢您的帮助。

0 投票
2 回答
342 浏览

docker - Passing a complex shell script via docker exec sh -c "..."

I have a script that works fine in sh on a linux host as well as inside an alpine container. But when I try executing that using docker exec <containerID> sh -c "<script>" it misbehaves. The script's function is to output stuff similar to ps.

EDIT: sh -c "<script>" has the same behavior.

0 投票
0 回答
50 浏览

linux - 已关闭 - 无法在 Docker 官方文档的 Ubuntu 映像中重现 docker run--> docker exec

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

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

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

docker exec -d ubuntu_bash touch /tmp/execWorks

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

docker exec -it ubuntu_bash bash

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

docker exec -it -e VAR=1 ubuntu_bash bash

我确实按照这个步骤 #1很好地创建了一个容器,将我放入交互式 Shell,但是当从该 Ubuntu 容器将步骤 #2发出到 shell 中/内部时,会收到下一个错误:

bash:码头工人:找不到命令

在我的理解中,这个错误是有道理的,因为在最近创建的容器内部不存在docker,所以它不会识别我在其中发出的任何docker-command

正如他们在本教程中所述,在官方docker.com URL 下方,我有哪些选项可以实现这一点: https ://docs.docker.com/engine/reference/commandline/exec/

0 投票
3 回答
541 浏览

bash - 将一组命令直接放入`docker exec`

我有以下命令可以正常工作并foo在返回之前打印:

我想用一个管道将多个命令定向到容器中,例如echo 'foo'and ls /。我尝试了以下方法:

  1. 这失败了,因为它在主机上运行命令并将输出通过管道传输到容器中: /li>
  2. 这失败了,因为它的语法不好。它也在主机上运行:

    /li>
  3. 这个失败了,但我不想使用字符串数组:

    /li>

我还尝试了其他几种方法,例如将命令输入teeorecho但没有任何运气。如果你想知道我为什么要做这件看似荒谬的事情,那是因为:

  • 这是一个简短的脚本,我想将所有内容放在一个地方
  • 我想使用语法突出显示,所以我不想将它全部存储在字符串列表中
  • 容器有脚本应该运行的程序,而主机没有
  • 这是一个自动过程,我想在主机上使用 crontab 触发