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