2016-08-30 250 views
3

我在Docker容器中使用docker容器與Ubuntu:14.04和一些C++應用程序。如何從主機操作系統運行Docker容器的應用程序?

是否可以從主機操作系統(在我的情況下爲Win 7)運行在容器內的應用程序?

喜歡的東西:

docker run <path-to-binary>/mybinary -f 10 -o output.txt

UPDATE:

是的,這是可能的

docker run -it <my-image> <path-to-binary>/mybinary

所以最好我想裏面泊塢窗的應用程序將成爲像本地應用程序在Windows主機操作系統上。

也可以指定主機操作系統中的文件和文件夾作爲docker容器看不到的應用程序的輸入參數?

UPDATE:

我試圖安裝在容器共享文件夾啓動

docker run -v C:\shared_with_VM:/temp my_image

docker run -v "C:\shared_with_VM":/temp my_image

,但我得到的錯誤:

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: Invalid 
bind mount spec "C:\\shared_with_VM:/temp": invalid mode: /temp. 
See 'C:\Program Files\Docker Toolbox\docker.exe run --help'. 

至於說在Windows here正道格式應該是

docker run -v /c/shared_with_VM:/temp my_image

+0

在Windows中嘗試以下語法:'docker run -v // c/Users/mrgloom/Desktop/data:/ data ' – n2o

回答

3

我不知道如果我正確地理解你的問題......

您可以mount folders從主機到容器使其可從您的容器內進入:

docker run -v /host/folder:/container/ -it <image> <executable> <arguments> 

例如:

docker run -v /tmp:/tmphost -it ubuntu ls -al /tmphost 
# or in Windows 
docker run -v //c/Users/mrgloom/Desktop/data:/tmphost -it ubuntu ls -al /tmphost 

這在容器中創建文件夾/container//host/folder鏈接它。然後,您可以雙向讀取/寫入這些文件夾中的文件。您的二進制文件必須指向輸入文件,該文件可能位於/container/input.txt

+0

Yes,you理解我的問題是正確的,但似乎你指定的命令是錯誤的'-v'選項將與'mybinary'有關?也許訂單應該不同? – mrgloom

+0

我增加了另一個可能使其更清晰的例子。 – n2o

+0

好的,我理解你的例子,但似乎你正在使用Linux路徑?查看我的更新。 – mrgloom

相關問題