docker cp命令使用报错:Error: No such container:path

我想从docker容器中把里面的文件拷贝出来,把外面的东西拷贝进去

注:docker中的路径和外面的路径都是真实存在的,容器id也真实存在

尝试做法及运行结果、报错内容

首先

[root@d8a4ced9-4996-52cb-a ~]# docker --help |grep cp       
  cp          Copy files/folders between a container and the local filesystem     #docker有该命令但是说的并不详细

网上搜索:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|
尝试:

docker cp  312ee12b47a8:/opt/samba/user_data/app/test.sh /mnt/
提示
Error: No such container:path: 312ee12b47a8:/opt/samba/user_data/app/test.sh

网上搜索说需要使用长CONTAINERID
使用

docker inspect 312ee12b47a8 |grep 312ee12b47a8 
#获取长ID为:312ee12b47a8ec00dfb4e36912387350e36bdba566ef7ee87347893db596bc85
docker cp  312ee12b47a8ec00dfb4e36912387350e36bdba566ef7ee87347893db596bc85:/opt/samba/user_data/app/test.sh /mnt/
Error: No such container:path: 312ee12b47a8ec00dfb4e36912387350e36bdba566ef7ee87347893db596bc85:/opt/samba/user_data/app/test.sh
我想要达到的结果 1、能把docker容器中的内容拷出来,也能把外面的东西拷贝到容器中;
                      2、或告诉我为什么拷贝不出来,是容器可以有这样的限制吗?

因该是遇到了只读文件系统(不知道咋直接复制出来,可以试试修改权限,不过很少遇到就没有弄过),你可以先进入容器,把你要的文件cp到容器的根目录下,然后在宿主机上用docker cp复制出来。

而且,建议使用 -v 做磁盘目录映射,这样,这个目录就可以打通了 宿主机和容器目录的文件共享了。

docker cp 命令中,要用容器名称来表示容器,而非容器id,比如

docker cp opengauss:/home/omm/test.txt /home/oracle/

如果你不知道你的容器名称,可以使用 docker stats 命令查看

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632