Linux+Docker - How to run host's apps from inside Docker container?
我想知道Docker是否可以在容器中运行安装在主机中的应用程序,这样我就不需要在每个图像上都安装应用程序,浪费硬盘空间。
我知道 Linux 是不同的,因为它需要本地的依赖项和包,但我想知道是否可以像在 Windows VM 中一样使用它。
在 Windows Hyper-V 中,我通过与容器共享包含可移植应用程序的网络文件夹并从 Windows VM 内部运行应用程序来做到这一点。
谢谢。
您可以将主机上包含可执行文件的目录链接到容器中。然后它将可以在容器中访问。为此,您可以使用 VOLUMES -- 将主机目录挂载为数据卷,并将主机目录(此处为:/tmp/foo)挂载到您的容器(此处为:/foo)并在您的容器中执行一个名为 foo.sh 的脚本容器的位置 /foo/foo.sh:
1 2 3 4 5 6 7 | mkdir /tmp/foo echo -e"#\\!/bin/sh\ \ echo foo"> /tmp/foo/foo.sh docker run --rm -v /tmp/foo:/foo alpine sh /foo/foo.sh => foo |
同样,您可以将二进制文件从您的主机添加到您的容器中……但我不认为这是有意的,也不应该使用,因为容器应该作为独立的、隔离的"轻量级虚拟机"工作"。您向主机添加了不必要的依赖项,这似乎不是一个优雅的解决方案。