Python 链接docker容器以合并不同的库

Python 链接docker容器以合并不同的库,python,c,docker,Python,C,Docker,可以链接Docker容器。大多数示例涉及将Redis容器与SQL容器链接。链接容器的美妙之处在于,您可以将SQL环境与Redis环境分开,而不是构建一个整体映像,您可以维护两个完全分开的映像 我可以看到这对于服务器应用程序(通信通过端口传输)是如何工作的,但是我很难为不同的库复制类似的方法。作为一个具体的例子,我想使用一个带有Ipython笔记本的容器、C/C++库caffe(它通过其子文件夹中的一个包公开Python接口)和一个优化库,如Ipopt。Ipython和Caffe的容器已经存在,我

可以链接Docker容器。大多数示例涉及将Redis容器与SQL容器链接。链接容器的美妙之处在于,您可以将SQL环境与Redis环境分开,而不是构建一个整体映像,您可以维护两个完全分开的映像


我可以看到这对于服务器应用程序(通信通过端口传输)是如何工作的,但是我很难为不同的库复制类似的方法。作为一个具体的例子,我想使用一个带有Ipython笔记本的容器、C/C++库caffe(它通过其子文件夹中的一个包公开Python接口)和一个优化库,如Ipopt。Ipython和Caffe的容器已经存在,我目前正在为Ipopt制作一个单独的图像。然而,我如何在不构建一个巨大的单片Dockerfile的情况下将这三者联系起来呢?Caffe、Ipython和Ipopt都有一系列的依赖关系,这使得联合维护成为了一场真正的噩梦。

Docker链接是关于链接微服务的,这是独立的过程,就我所见,与您的问题无关

没有现成的工具将单独的docker图像组合到一个容器中,就像您在问题中所说的“链接”


如果你不想拥有巨大的整体图像,你可以考虑使用配置工具A—La傀儡、厨师或ANNESS和DOCKER。一个例子。从理论上讲,你可以利用现有的食谱/剧本来建立你所需要的图书馆。不过,如果这种方法比维护“大型单片”Dockerfile容易得多,我会感到惊讶

我对docker容器的看法是,每个容器通常代表一个进程。例如redis或nginx。容器通常相互通信或通过

每个容器运行自己的操作系统(通常在
Dockerfile
中的
FROM
-部分中指定)。在您的情况下,您没有运行任何特定的进程,而是希望共享库。这不是docker设计的目的,我甚至不确定它是否可行,但它确实似乎是一种奇怪的做事方式

因此,我的建议是,创建一个具有最小公分母的基本映像(所有其他映像所共有的一些共享库),并且您的其他映像将该映像用作来自-映像的


此外,如果您需要对具有大量依赖项和大量资源调配的环境进行更复杂的设置,我建议您查看其他资源调配工具,如或

这正是我所担心的,但我不能完全确定我是否错过了什么。非常感谢您的澄清(也感谢Mykola Gurov)!