Docker 中导入/导出 PostgreSql
什么是Docker Volume?
在操作之前,我们要先了解一下Docker Volume ,这样才方便理解我们之后的操作。
Docker Volume:翻译为数据卷,用于持久化数据以及容器之间共享数据,他挂载于宿主机上。所以即使删掉了某个容器,数据依然会存在我们宿主机中,保证数据的安全性。
查看Docker容器的Dcoker Volume信息
我们使用docker inspect命令来查看Docker容器的详细信息:
# inspect 后面可以输入容器ID或者是容器名 |
输入之后在命令行会看到很多的信息,我们找到上面代码块的Mounts
就好了,这里面就有我们所需要的:
Source
表示在宿主机上的目录,可以看到是/project/server/db/data/pg
Destination
表示在容器中的目录,可以看到是/var/lib/postgresql/data
进入Docker PostgreSql容器
查询到了挂载目录之后,我们要做的是进入PostgreSql容器:
➜ ~ docker exec -it 101768619d0c bash |
导出容器中的数据库
# dev 是要到导出的数据库名,根据自己需要更换 |
等待一会我们就可以在上面提到的Source
目录中看到dev.sql
这个文件啦。
# 这是在容器内查询 |
导入数据到容器中的数据库
# dev 是要到导入的数据库名,根据自己需要更换 |
虽然可以在Source
目录中看到dev.sql
这个文件,但导入时的路径还是要填Destination
的路径,不然会提示找不到路径/文件的。