如何从C ++程序执行docker-run命令?

时间:2019-07-29 21:08:00

标签: c++ docker system docker-run

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

2 个答案:

答案 0 :(得分:0)

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

System("docker run -it Image_name")

答案 1 :(得分: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。 https://docs.docker.com/engine/api/v1.24/在此处记录了Engine API。我相信docker run -it Image_name命令会启动API所谓的"service"

shell命令将是最简单的方法。 Engine API方法将需要花费更多的精力,但是会导致代码更简洁,更健壮。正确的方法取决于您的情况。