Linux + Docker – 如何从Docker容器中运行主机的应用程序?

我想知道,如果Docker可以运行安装在容器主机上的应用程序,所以我不需要在浪费硬盘空间的每个图像上安装应用程序。

我知道Linux是不同的,因为它需要本地依赖和包,但我不知道是否有可能使用它像在Windows VM。 在Windows Hyper-V中,我通过将包含便携式应用程序的networking文件夹与容器共享并从Windows VM内部运行应用程序来完成此操作。 谢谢。

您可以将包含可执行文件的主机上的目录链接到容器中。 然后它将在容器中访问。 为此,可以使用VOLUMES – 将主机目录挂载为数据卷,并将主机目录(此处为/ tmp / foo)挂载到您的容器(此处为/ foo),然后在您的目录中执行名为foo.sh的脚本容器的位置/foo/foo.sh:

mkdir /tmp/foo echo -e "#\!/bin/sh\n\necho foo" > /tmp/foo/foo.sh docker run --rm -v /tmp/foo:/foo alpine sh /foo/foo.sh => foo 

同样的方法,你可以从你的主机添加二进制文件到你的容器…但是我不认为这是有意的,应该使用,因为一个容器应该作为一个独立的,孤立的“轻量级虚拟机”工作。 你添加一个不必要的依赖到你的主机,这似乎不是一个优雅的解决scheme。