我尝试使用此命令将文件从容器复制到我的主机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 实验:假
答案 0 :(得分:5)
我认为这是因为docker认为c
是容器名称。您可以使用相对路径而不是绝对路径。
所以如果你在C:/
,你可以:
docker cp my_container:/folder anotherfolder
另请注意,在窗口cmd
和git 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之间复制并抛出错误。
的更多信息,请查看相关文档冒号(:)用作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.]]
前缀!