如何在拷贝文件到docker容器器内外互相拷贝数据

Sponsered by
利用数据卷容器来备份、恢复、迁移数据卷
可以利用数据卷对其中的数据进行进行备份、恢复和迁移。
首先使用 --volumes-from 标记来创建一个加载 dbdata 容器卷的容器,并从本地主机挂载当前到容器的 /backup 目录。命令如下:
$ sudo docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
容器启动后,使用了 tar 命令来将 dbdata 卷备份为本地的 /backup/backup.tar。
如果要恢复数据到一个容器,首先创建一个带有数据卷的容器 dbdata2。
$ sudo docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
然后创建另一个容器,挂载 dbdata2 的容器,并使用 untar 解压备份文件到挂载的容器卷中。
$ sudo docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf
/backup/backup.tar1032人阅读
docker(6)
从容器内拷贝文件到主机上
[root@oegw1 soft]# docker ps
CONTAINER ID & & & &IMAGE & & & & & & & COMMAND & & & & & & & &CREATED & & & & & & STATUS & & & & & & &PORTS & & & & & & & NAMES
8d418a7b6021 & & & &postgres & & & & & &&/docker-entrypoint. & 7 hours ago & & & & Up 7 hours & & & & & & & & & & & & & & &test1 & &
[root@oegw1 soft]# docker exec -t -i 8d418a7b6021 /bin/bash
root@oegw1:/var/lib/postgresql# pwd
/var/lib/postgresql
root@oegw1:/var/lib/postgresql# ls
root@oegw1:/var/lib/postgresql# exit
[root@oegw1 soft]# docker cp 8d418a7b6021:/var/lib/postgresql/data /opt/soft/
docker run -v /opt/soft:/mnt 8d418a7b6021
从主机上拷贝文件到容器内
1.用-v挂载主机数据卷到容器内
通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。
[root@oegw1 soft]# docker run -it -v /opt/soft:/mnt postgres /bin/bash
这种方式的缺点是只能在容器刚刚启动的情况下进行挂载
2.直接在主机上拷贝到容器物理存储系统
[root@oegw1 soft]# docker ps
CONTAINER ID & & & &IMAGE & & & & & & & COMMAND & & & & & & & &CREATED & & & & & & STATUS & & & & & & &PORTS & & & & & & & NAMES
8d418a7b6021 & & & &postgres & & & & & &&/docker-entrypoint. & 8 hours ago & & & & Up 8 hours & & & & & & & & & & & & & & &test1 & & & & & & &&
[root@oegw1 soft]# docker inspect -f & '{{.Id}}' 8d418a7b6021
8d418a7b6ada5ca5fe1e82a953afe05c95b16d23241d47
在docker中,其实是映射到/var/lib/docker/devicemapper/mnt/8d418a7b6ada5ca5fe1e82a953afe05c95b16d23241d47/这个文件夹中的
这个文件下面就是docker中的根目录里面的内容,然后我们就可以按照我们想要的内容随便进行拷贝了
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:121043次
积分:3943
积分:3943
排名:第6186名
原创:281篇
转载:31篇
(8)(7)(1)(1)(1)(1)(8)(36)(1)(8)(5)(12)(45)(11)(15)(13)(17)(17)(15)(28)(21)(21)(20)(2)

我要回帖

更多关于 docker 文件拷贝 的文章

 

随机推荐