我尝试将文件夹复制到我的容器但不能正常工作。如果我试试
sudo docker cp 4aefd670e41f:/var/www/html/web2015 /home/desarrollo3/proyectos/web2015
文件夹web2015复制正确,但我需要复制容器中的文件夹。
工作正常
sudo docker cp 4aefd670e41f:/var/www/html/web2015 /home/desarrollo3/proyectos/web2015
不工作
sudo docker cp /home/desarrollo3/proyectos/web2015 4aefd670e41f:/var/www/html/web2015
有条件的信息Docker
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.3.3
Git commit (client): 7c8fca2
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.3.3
Git commit (server): 7c8fca2
OS/Arch (server): linux/amd64
我是Ubuntu 15
错误FATA [0000]错误:路径未指定
sudo docker cp /home/desarrollo3/proyectos/web2015 4aefd670e41f:/var/www/html/web2015
如果我写这篇文章,我不会收到错误但不会复制任何内容:
sudo docker cp ./folder:web2015 4aefd670e41f:/var/www/html/
答案 0 :(得分:6)
如果是您需要复制的文件夹,请确保SRC_PATH
以/
结尾(考虑到容器上的DEST_PATH
已存在)
sudo docker cp /home/desarrollo3/proyectos/web2015/ 4aefd670e41f:/var/www/html/web2015
docker cp提及:
SRC_PATH
以/
结尾。将源目录的内容复制到此目录中。
如issue 13171所示,在docker 1.8.0(commit 5e86b81)中修复了错误消息“Error:Path not specified”。
Docker 1.6.2太旧了。
答案 1 :(得分:1)
在较旧的docker中,您无法使用“ docker cp”复制到容器。如果出于任何原因迫切需要这样做:
docker exec container touch /myfile
sudo find /var/lib/docker -iname myfile
这将向您显示容器文件系统所在的位置。通常只需在此处cp您的文件即可。
sudo cp -r /myfiles/webapp /var/lib/docker/aufs/mnt/019283091823081027401720473a2c7ff637a6f09edab6/var/www/localhost/htdocs
我不确定为什么Docker并未正式实际执行此操作,但是我怀疑每一层上都有一些校验和,因此,如果您在另一个Dockerfile中重用该映像,则可能无法正常工作。但是它至少应该在容器的整个生命周期内都起作用,因此您可以执行所需的操作。
希望对您有所帮助,包括尽快更新或更换此服务器。