从命令行在脚本中运行的 Docker 命令

Posted

技术标签:

【中文标题】从命令行在脚本中运行的 Docker 命令【英文标题】:Docker commands to run in script from Command Line 【发布时间】:2019-06-11 21:44:24 【问题描述】:

我需要以下命令的帮助才能在 CMD 中输入脚本。我已经完成了 docker 的所有设置。

1) 在 CMD 处运行:

docker run --net=host --interactive --tty auvsisuas/interop-client

2) 在 CMD 屏幕上以 # 运行

./tools/interop_cli.py --url http://10.10.130.2:8000 --username testuser 任务

参考:https://github.com/auvsi-suas/interop/wiki/Getting-Started#create-container--start-shell 和 https://github.com/auvsi-suas/interop/wiki/Getting-Started#get-missions

如果我在 CMD 中一个接一个地运行单个命令,它会工作并给我输出。但是当我放入脚本(.bat)文件时,它只运行第一个命令,之后屏幕上出现#提示,但第二个命令不执行。

我需要什么:

从 CMD 一起运行两个命令的脚本

注意:该图像是公开可用的,可以在任何 docker 设置上试用。

What I want:(This is what happens when I type directly in CMD)

My .CMD/BAT file

What happens: - 在 # 提示符处停止

非常感谢任何帮助。

【问题讨论】:

“它不工作” 有点模糊,命令截图也不是很有用。你能补充一些信息吗? 我刚刚更新了命令和要求的序列。请检查 我们能看到你完整的Dockerfile吗? 我从互联网上安装 Docker 后运行 Docker Quickstart Terminal。它配置各种参数并打开 Daemon 终端。然后我在运行 docker 命令的地方打开 CMD(如上面 #1 中所述)。我不独立创建任何 DockerFile。我需要通过 CMD 运行,这是我的要求,并且希望上面的 #1 和 #2 命令通过脚本一起运行。 【参考方案1】:

如果您从另一个调用 .bat 等,请不要忘记默认行为是将控制权转移到较低级别的脚本并且永远不会回来 - 如果您想要控制权,您需要使用“调用”执行完下一级脚本后​​返回上一级脚本。

【讨论】:

我不明白你说的“另一个”是什么意思?以及正在转移到哪个较低级别的脚本?我的第一行在 cmd 中执行,第二行应该在 # 提示符中工作,该提示符在执行第一行时在 cmd 中打开。 好吧,没关系。我认为这是值得一提的,因为每当我遇到这样的问题时,他们就会有这个原因!我以为你是从另一个调用一个 .bat 或 .cmd,但显然你不是。

以上是关于从命令行在脚本中运行的 Docker 命令的主要内容,如果未能解决你的问题,请参考以下文章

如何通过命令行在服务器上运行php脚本

通过命令行在 Docker 中更改 --commit CMD 时出错

通过命令行在 Mac 上安装 Docker Toolbox

从命令行在CMake项目上设置MSVC运行时

如何从命令行在 Windows 上运行 .class 文件?

postgres:从命令行在数据库中创建表