首页 文章

不允许使用Docker cp命令

提问于
浏览
4

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

docker cp my_container:/folder c:\anotherfolder

docker控制台返回

copying between containers is not supported

为什么?

客户:版本:17.05.0-ce API版本:1.29 Go版本:go1.7.5 Git commit:89658be内置: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实验:false

2 回答

  • 5

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

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

    docker cp my_container:/folder anotherfolder
    

    另请注意,在窗口 cmdgit bash 中运行命令之间几乎没有区别 .

    1. You are using 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. You are using 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

    正如另一个答案所说,这是因为它认为 c: 是一个容器名称 . 您可以通过在 docker cp my_container:/folder "c:\anotherfolder" 之类的引号中包装路径来解决此问题

相关问题