1

我想从 C++ 程序执行“docker run -it Image_name”。有什么办法可以做到这一点?

4

2 回答 2

0

我可以想到两种方法可以实现这一目标。

对于一种快速而简单的方法,您实际上可以从您的 C++ 代码中运行命令。似乎有几种方法可以使用 C++ 运行命令,但如果您只想运行命令, system()函数似乎是一种简单的方法:

int main() {
    system("docker run -it Image_name");
}

请记住,您需要确保docker可执行文件在您的PATH环境变量中。您还需要考虑要支持哪些操作系统,Linux 中的系统调用的行为可能与 Windows 中的不同。正确进行系统调用可能很棘手。

对于另一种方法,直接使用 docker 引擎的 API。docker命令被发送到此 API。您可以自己直接连接到此 API,并以与docker run -it Image_name命令相同的方式调用 API。引擎 API 记录在这里https://docs.docker.com/engine/api/v1.24/。我相信该docker run -it Image_name命令会启动 API 所谓的“服务”

shell 命令将是最简单的方法。引擎 API 方法会在前期花费更多的精力,但会产生更干净、更健壮的代码。正确的方法将取决于您的情况。

于 2019-07-29T21:49:12.410 回答
0

尝试使用来自 C++ 的简单系统命令。

System("docker run -it Image_name")
于 2019-07-29T21:44:15.050 回答