如何从主机操作系统运行Docker容器的应用程序?
问题描述:
我在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
答
我不知道如果我正确地理解你的问题......
您可以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
在Windows中尝试以下语法:'docker run -v // c/Users/mrgloom/Desktop/data:/ data' –
n2o