Docker:从同一图像

时间:2018-05-26 09:37:35

标签: python docker

我创建了一个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彼此独立(它们不通信,可以独立启动)。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

Docker documentation列出了“每个容器应该只有一个问题”的最佳做法。在您的示例中,听起来好像您有两个任务由两个单独的Python脚本运行,但打包在同一个图像中。

理想情况下,您可以避免这种情况,并为您的两项任务分别设置两个图像。如果这两个脚本共享大量公共依赖项,则可以创建自己的父映像以基于两个脚本映像。