欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker容器文件拷贝到宿主机

程序员文章站 2022-06-16 12:38:31
...

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

docker容器文件拷贝到宿主机
记一下容器id:bf4c4fff338c
进入容器

docker exec -it bf4c4fff338c /bin/bash

登陆mysql

mysql -uroot -p xxxx

查看一下库名

show databases;

记住待会儿要导出的库名,退出mysql

exit

用命令导出数据

mysqldump -u root -p '库名'>库名.sql

输入密码
docker容器文件拷贝到宿主机
如果报错,直接把密码连接到-p后头也行
在当前目录下

ls

就能看到导出的文件,使用命名pwd看一下当前路径,记住它,我的是/root


退出容器

exit

将容器内文件拷贝到宿主机

docker cp <containerId>:/导出文件的位置/xxx.sql /宿主机的位置

示例:docker cp bf4c4fff338c:/root/rest.sql /root/

然后

cd /root

看一下

ll

docker容器文件拷贝到宿主机
这样就可以用xftp等工具将文件拿到任何你想哪的地方去了