如何从主机操作系统中的docker容器运行应用程序?

时间:2016-08-30 14:00:27

标签: docker

我正在使用带有ubuntu:14.04的docker容器和我在docker容器中编译的一些C ++应用程序。

是否可以从主机操作系统(在我的案例中为Win 7)中运行容器内的应用程序?

类似的东西:

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

更新

是的,可能

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

理想情况下,我希望docker中的应用程序与Windows主机操作系统上的本机应用程序一样。

还可以在主机操作系统中指定文件和文件夹作为docker容器无法看到的应用程序的输入参数吗?

更新

我尝试在容器启动时挂载共享文件夹

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

1 个答案:

答案 0 :(得分: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