docker容器文件拷贝到宿主机
干货
将容器内文件拷贝到宿主机
docker cp <containerId>:/导出文件的位置/xxx.sql /宿主机的位置
其中containerId是docker ps
查看到的容器id
示例:docker cp bf4c4fff338c:/root/rest.sql /root/
以下是我从docker容器中的mysql数据库中导出数据并将数据拿到宿主机的一次记录
有时候需要将docker容器里面的文件拿到宿主机,或者有文件需要从宿主机拷贝到容器,可以在打镜像时就包含,也可以用docker命令。
背景:接手一个项目的维护,之前老兄将mysql装在docker容器中,容器又在虚拟机中,而且mysql版本是8.0!!!直接用navicat for mysql等工具不能连接,有些数据的导入导出就显得很不方便,关键是这个环境还是在本地内网,现在需要迁移到云上,就需要将原有系统数据导出,不巧的是这位老兄另谋高就了,什么除了几个密码,什么文档也没有留下……
进入虚拟机,查看容器
docker ps
记一下容器id:bf4c4fff338c
进入容器
docker exec -it bf4c4fff338c /bin/bash
登陆mysql
mysql -uroot -p xxxx
查看一下库名
show databases;
记住待会儿要导出的库名,退出mysql
exit
用命令导出数据
mysqldump -u root -p '库名'>库名.sql
输入密码
如果报错,直接把密码连接到-p后头也行
在当前目录下
ls
就能看到导出的文件,使用命名pwd
看一下当前路径,记住它,我的是/root
退出容器
exit
将容器内文件拷贝到宿主机
docker cp <containerId>:/导出文件的位置/xxx.sql /宿主机的位置
示例:docker cp bf4c4fff338c:/root/rest.sql /root/
然后
cd /root
看一下
ll
这样就可以用xftp等工具将文件拿到任何你想哪的地方去了