我正在使用带有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
答案 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