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

时间:2017-05-23 10:09:54

标签: docker containers system-administration

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

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

1 个答案:

答案 0 :(得分:2)

您可以将包含可执行文件的主机上的目录链接到容器中。然后它将在容器中访问。为此,您可以使用VOLUMES -- Mount a host directory as a data volume并将主机目录(此处为:/ 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

同样地,您可以将主机中的二进制文件添加到容器中......但我不认为这是有意的并且应该使用,因为容器应该作为独立的,孤立的"轻量级 - VM&#34 ;.你向主机添加了一个不必要的依赖,这似乎不是一个优雅的解决方案。