2024-01-04 06:00PM
参考:https://linlin.fun/blog/1208
1. 先查看 docker 中运行的 postgres
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4510a9e8d123 postgres "docker-entrypoint.s…" 18 hours ago Up 5 hours 5432/tcp objective_jang
2.前提是已经备份过数据库的数据,如果没有备份可以使用命令备份:
docker exec -t postgres_container pg_dump -U postgres mydb > /path/to/backup.sql
eg:
root@ali-anquan-2:~# docker exec -t 4510a9e8d123 pg_dump -U postgres dongtaipaifang > /tmp/dongtaipaifang20240307.sql
root@ali-anquan-2:~# cd /tmp/
root@ali-anquan-2:/tmp# ls -altrh
total 89M
-rwxr-xr-x 1 root root 2.0M Dec 12 16:17 kdevtmpfsi
drwxr-xr-x 2 root root 4.0K Dec 12 16:17 .ICEd-unix
drwxr-xr-x 23 root root 4.0K Dec 12 16:27 ..
drwxr-xr-x 3 root root 4.0K Dec 14 16:33 wpscan
drwxr-xr-x 2 root root 4.0K Dec 16 12:45 hsperfdata_root
-rw-r--r-- 1 root root 94K Jan 3 22:07 largest111
drwxr-xr-x 3 root root 4.0K Jan 4 09:29 v8-compile-cache-0
drwxrwxr-x 3 root root 4.0K Mar 1 14:18 build_old
-rw-r--r-- 1 root root 82M Mar 5 20:10 largest
drwxrwxr-x 3 root root 4.0K Mar 6 16:15 build
-rw-r--r-- 1 root root 4.8M Mar 7 09:04 dongtaipaifang20240307.sql
drwxr-xr-x 8 root root 4.0K Mar 7 09:04 .
1) postgres_container 要替换为你的 CONTAINER ID
2) mydb 替换为你的要备份的数据库名称
3) /path/to/ 替换为你要备份的文件路径
4) backup.sql 替换为你要备份的文件名称
3.然后使用docker cp 把docker外部的文件复制到docker内部:
docker cp /path/to/backup.sql postgres_container:/backup.sql
1) /path/to/ 替换为你刚刚备份的文件路径
2) backup.sql 替换为你要备份的文件名称
4.最后导入数据即可:
docker exec -t postgres_container psql -U postgres -d mydb -f /backup.sql
1) postgres_container 要替换为你的 CONTAINER ID
2) mydb 替换为你的要导入的数据库名称
3) backup.sql 替换为你要导入的文件名称
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论