Ant*_* O. 37 docker boot2docker docker-toolbox
如何在我的Windows文件和docker容器之间共享文件夹,方法是--volume使用Docker Toolbox在简单的命令下安装卷?
我正在使用"Docker Quickstart终端",当我尝试这个时:
winpty docker run -it --rm --volume /C/Users/myuser:/myuser ubuntu
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
Invalid value "C:\\Users\\myuser\\:\\myuser" for flag --volume: bad mount mode specified : \myuser
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)
在此之后,我也试过了
winpty docker run -it --rm --volume "//C/Users/myuser:/myuser" ubuntu
Run Code Online (Sandbox Code Playgroud)
得到了
Invalid value "\\\\C:\\Users\\myuser\\:\\myuser" for flag --volume: \myuser is not an absolute path
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)
jmg*_*esc 44
这是对所选答案的改进,因为答案仅限于c:\ Users文件夹.如果要使用c:\ Users之外的目录创建卷,则这是一个扩展.
在Windows 7中,我使用了docker工具箱.它使用Virtual Box.
例如,在我的情况下,我已经包括:
**Name**: c:\dev
**Path**: c/dev
Run Code Online (Sandbox Code Playgroud)
使用此命令:
$ docker-machine restart
Run Code Online (Sandbox Code Playgroud)
要验证它是否有效,请执行以下步骤:
使用此命令:
$ docker-machine ssh
Run Code Online (Sandbox Code Playgroud)
就我而言,我使用此命令
$ cd /c/dev
Run Code Online (Sandbox Code Playgroud)
你会看到这样的东西:
docker@default:/c/dev$ ls -all
total 92
drwxrwxrwx 1 docker staff 4096 Feb 23 14:16 ./
drwxr-xr-x 4 root root 80 Feb 24 09:01 ../
drwxrwxrwx 1 docker staff 4096 Jan 16 09:28 my_folder/
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您将能够为该文件夹创建一个卷.
您可以使用以下命令:
docker create -v /c/dev/:/app/dev --name dev image
docker run -d -it --volumes-from dev image
Run Code Online (Sandbox Code Playgroud)
要么
docker run -d -it -v /c/dev/:/app/dev image
Run Code Online (Sandbox Code Playgroud)
这两个命令对我有用.我希望这会有用.
Ant*_* O. 29
创建数据卷:
docker create -v //c/Users/myuser:/myuser --name data hello-world
winpty docker run -it --rm --volumes-from data ubuntu
Run Code Online (Sandbox Code Playgroud)直接在docker主机中进行SSH:
docker-machine ssh default
Run Code Online (Sandbox Code Playgroud)
从那里做经典:
docker run -it --rm --volume /c/Users/myuser:/myuser ubuntu
Run Code Online (Sandbox Code Playgroud)在 Windows 7 上,简单地使用双斜杠对我来说很有效:
docker run --rm -v //c/Users:/data alpine ls /data/
Run Code Online (Sandbox Code Playgroud)
摘自这里: https: //github.com/moby/moby/issues/12590
截至2016年8月,Docker for windows现在直接使用hyper-v而不是virtualbox,所以我认为它有点不同.首先在设置中共享驱动器然后使用C:驱动器号格式,但使用正斜杠.例如,我创建了一个H:\t\REDIS目录,并且能够/data使用以下命令将其安装在容器中:
docker run -it --rm -v h:/t/REDIS:/data redis sh
Run Code Online (Sandbox Code Playgroud)
相同的格式,使用驱动器号和冒号然后转发斜杠为路径分隔符工作从Windows命令提示符和git bash.
我发现这个问题谷歌搜索找到答案,但我找不到任何有用的东西.事情似乎没有错误被抛出,但我只是看不到主机上的数据(反之亦然).最后,我仔细检查了设置并尝试了它们显示的格式:
首先,你必须在这里的设置中将整个驱动器共享到docker vm,我认为这使得"docker-machine"vm以对该驱动器的hyper-v访问运行.然后你必须使用那里显示的格式,这似乎只存在于这一个图像中,并且没有我在网上找到的文档或问题:
docker run --rm -v c:/Users:/data alpine ls /data
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找能够解决所有Windows问题并使其以与Linux相同的方式在Windows操作系统上运行的解决方案,请参见下文。我对此进行了测试,它在所有情况下均有效。我也在展示如何获得它(步骤和思考过程)。我还写了一篇有关使用Docker并在此处处理Docker问题的文章。
$ cd ~以确保您位于 Windows 用户目录中。$ docker run -it -v /$(pwd)/ubuntu:/windows ubuntu如果错误是由于拼写错误造成的,它将起作用。您将得到一个ubuntu在您的用户目录中命名的空文件夹。windows您将在 ubuntu 容器中看到该文件夹及其名称。
| 归档时间: |
|
| 查看次数: |
40372 次 |
| 最近记录: |