不允许使用Docker cp命令

时间:2017-10-21 18:14:32

标签: docker

我尝试使用此命令将文件从容器复制到我的主机Windows机器

docker cp my_container:/folder c:\anotherfolder

docker console返回

copying between containers is not supported

为什么?

客户端:  版本:17.05.0-ce  API版本:1.29  转到版本:go1.7.5  Git commit:89658be  建造:2017年5月5日星期五15:36:11  OS / Arch:windows / amd64

服务器:  版本:17.05.0-ce  API版本:1.29(最低版本1.12)  转到版本:go1.7.5  Git commit:89658be  建造:2017年5月4日星期四21:43:09  OS / Arch:linux / amd64  实验:假

3 个答案:

答案 0 :(得分:5)

我认为这是因为docker认为c是容器名称。您可以使用相对路径而不是绝对路径。

所以如果你在C:/,你可以:

docker cp my_container:/folder anotherfolder

另请注意,在窗口cmdgit bash中运行命令之间几乎没有差异。

<强> 1。你正在使用git bash:

在Windows上的git bash控制台中转义:

WlaDo@DESKTOP-RBBRJOD MINGW64 ~
$ docker cp eb19fc21889c:/data c:\test
copying between containers is not supported <--- we got this error which points to implementation for which I added link below

WlaDo@DESKTOP-RBBRJOD MINGW64 ~
$ docker cp eb19fc21889c:/data c:\\test
<--- no errors here -->

WlaDo@DESKTOP-RBBRJOD MINGW64 ~
$ ls c:\\test
<--- data from container -->

<强> 2。您正在使用Windows cmd

从Windows cmd开始,您的方法应该有效:

C:\Users\WlaDo>docker cp eb19fc21889c:/data c:\test
<--- no errors here -->

C:\Users\WlaDo> dir  c:\test
<--- data from container -->

在容器is not implemented之间复制并抛出错误。

有关docker cp

的更多信息,请查看相关文档
  

冒号(:)用作CONTAINER及其路径之间的分隔符。您   也可以使用:在指定SRC_PATH或DEST_PATH的路径时   本地机器,例如file:name.txt。如果您在本地使用:   机器路径,你必须明确相对或绝对路径,   例如:

     

`/ path / to / file:name.txt`或`。/ file:name.txt`

答案 1 :(得分:2)

正如另一个答案所说,这是因为它认为c:是一个容器名称。您可以通过将路径包含在docker cp my_container:/folder "c:\anotherfolder"

之类的引号中来解决此问题

答案 2 :(得分:0)

mingw32(git bash)中的工作路径规范:

import numpy as np
x = [1,2,1]
y = [0,1,0]
z = [2,3,1]
a = np.zeros((3,4,4))
n = range(a.shape[0])
a[n,x,y] += z
print(sum(a))

请注意[[0. 0. 0. 0.] [3. 0. 0. 0.] [0. 3. 0. 0.] [0. 0. 0. 0.]] 前缀!