Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用一个或多个docker容器(来自withing python)?_Python_Docker_Performance - Fatal编程技术网

使用一个或多个docker容器(来自withing python)?

使用一个或多个docker容器(来自withing python)?,python,docker,performance,Python,Docker,Performance,使用集装箱化流程。从python脚本调用它。通过执行以下操作每次执行流程: subprocess.Popen([“docker运行(此处标记)(此处图像)(此处命令)”],stdout=subprocess.PIPE,shell=True) 这将创建另一个容器实例。它运行然后停止。 使用docker ps-a您可以看到所有数千个停止的容器。这不好吗? 我们应该使用一个容器来运行所有这些命令吗? 使用单个容器的最佳实践是什么?我们是否应该简单地运行一个sleep命令,然后获取容器ID并将其用于所有

使用集装箱化流程。从python脚本调用它。通过执行以下操作每次执行流程:

subprocess.Popen([“docker运行(此处标记)(此处图像)(此处命令)”],stdout=subprocess.PIPE,shell=True)

这将创建另一个容器实例。它运行然后停止。
使用
docker ps-a
您可以看到所有数千个停止的容器。这不好吗?
我们应该使用一个容器来运行所有这些命令吗?
使用单个容器的最佳实践是什么?我们是否应该简单地运行一个sleep命令,然后获取容器ID并将其用于所有调用?
同样,我们正在使用Python启动容器化过程。

您应该在处理完容器后清理它们,是的

在您拥有的代码中,包括一个
docker run--rm
选项。这将在容器退出后立即删除它。(如果它失败了,并且您希望查看日志,那么它们就会消失。)如果您愿意,您可以显式地
docker rm
容器

您可能应该使用启动容器。(
subprocess.Popen(shell=True)
在安全性方面非常危险,特别是当您试图运行像
docker run
这样的命令时,它可能会在主机上生根;通常,当您可以使用Python本机库执行相同任务时,请避免使用
subprocess
模块。)如果您这样做,然后,您可以使用

container=client.containers.run('image','command',auto_remove=True)

根据您的工作需要旋转尽可能多的容器并没有本质上的错误(尽管您可能会发现使用非容器本地进程更快、更简单、更安全)。我认为这样做比人工操作“保持容器活着”更好,所以你可以使用调试工具,比如“代码> DOCKEXECU/ YUP,听起来不错。感谢您指出SDK。我在Google上寻找它,所有的结果都是关于为Python应用程序创建一个容器/图像。感谢您提供高质量的信息性答案。