2017-05-23 194 views
0

我想知道Docker是否可以運行安裝在容器主機上的應用程序,這樣我就不需要在浪費硬盤空間的每個映像上安裝應用程序。Linux + Docker - 如何從Docker容器中運行主機的應用程序?

我知道Linux是不同的,因爲它需要本地依賴和包,但我不知道是否有可能像Windows VM一樣使用它。 在Windows Hyper-V中,我通過與容器共享包含便攜式應用程序的網絡文件夾並從Windows VM內部運行應用程序來完成此操作。 謝謝。

回答

2

您可以將包含可執行文件的主機上的目錄鏈接到容器中。然後它將在容器中被訪問。爲此,可以使用VOLUMES -- Mount a host directory as a data volume並將主機目錄(此處爲/ tmp/foo)裝入容器(此處爲/ foo),然後在容器位置/foo/foo.sh中執行名爲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 

用同樣的方法,你可以從你的主機添加二進制文件到您的容器......但我不認爲這是有意和應該使用,因爲容器應作爲一個獨立的,隔離的「lightweight-工作VM」。你添加一個不必要的依賴到它的主機,這似乎不是一個優雅的解決方案。

相關問題