注: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
2、或告诉我为什么拷贝不出来,是容器可以有这样的限制吗?
因该是遇到了只读文件系统(不知道咋直接复制出来,可以试试修改权限,不过很少遇到就没有弄过),你可以先进入容器,把你要的文件cp到容器的根目录下,然后在宿主机上用docker cp复制出来。
而且,建议使用 -v 做磁盘目录映射,这样,这个目录就可以打通了 宿主机和容器目录的文件共享了。
docker cp 命令中,要用容器名称来表示容器,而非容器id,比如
docker cp opengauss:/home/omm/test.txt /home/oracle/
如果你不知道你的容器名称,可以使用 docker stats 命令查看
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!