我创建了一个Python项目,其中包含几个包和几个依赖于包的脚本。结构看起来像这样:
app/
package1/
__init__.py
...
package2/
__init__.py
...
script1.py
script2.py
所以我将应用程序停靠,也就是说,我用一些Dockerfile创建了一个图像,其中默认脚本是,例如,script1.py:
FROM ...
ADD ...
...
CMD python script1.py
我的问题:从这个单个图像启动两个不同的容器是一个好习惯,一个运行scrip1,另一个运行script2?
docker build -t my_image .
docker run -d -it my_image
docker run -d -it my_image python script2.py
请注意,在我的情况下,script1和script2彼此独立(它们不通信,可以独立启动)。
感谢您的帮助
答案 0 :(得分:0)
Docker documentation列出了“每个容器应该只有一个问题”的最佳做法。在您的示例中,听起来好像您有两个任务由两个单独的Python脚本运行,但打包在同一个图像中。
理想情况下,您可以避免这种情况,并为您的两项任务分别设置两个图像。如果这两个脚本共享大量公共依赖项,则可以创建自己的父映像以基于两个脚本映像。