python - Docker:从同一个镜像运行多个脚本(容器)
问题描述
我制作了一个 Python 项目,其中包含几个包和几个依赖于包的脚本。结构看起来像这样:
app/
package1/
__init__.py
...
package2/
__init__.py
...
script1.py
script2.py
所以我对应用程序进行了 docker 化,也就是说,我用一些 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 是相互独立的(它们不通信并且可以独立启动)。
谢谢你的帮助
解决方案
Docker文档将“每个容器应该只关注一个问题”列为最佳实践。在您的示例中,这听起来好像您实际上有两个任务由两个单独的 Python 脚本运行,但打包在同一个图像中。
理想情况下,您会避免这种情况,并为您的两个任务提供两个单独的图像。如果这两个脚本共享大量公共依赖项,您可以创建自己的父映像以作为两个脚本映像的基础。
推荐阅读
- c++ - macOS 上缺少 Qt 库
- ionic4 - 如何在 Ionic 4 中搜索多个项目?
- javascript - 如何为实际上更改菜单选项语言的 wordpress 网站创建语言切换?
- c# - 如何使用“InternalsVisibleTo”从 XAML 访问另一个程序集中的内部类转换器
- javascript - 建立一个带有幻灯片的网站。试图让上一个和下一个按钮与 JS 一起工作
- angular - 在模板中使用 Monorepo 库中的离子元素会导致应用程序级别“没有 ChangeDetectorRef 提供程序”错误
- c++ - Boost ASIO (v1_72_0) 与 Visual Studio 2019 (v16.4.5) 在 c++20 模式下编译的错误
- python - 如何将轮廓转换为标记以进行绘图?
- wordpress - Wordpress:带有自定义查询的作者页面
- c++ - 将指针 this 包装成 shared_ptr