2016-08-30 117 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

相关问题