docker postgres 导出导入数据
导出
-s 选项用来只导出表结构,而不会导出表中的数据
-t 选项用来指定要导出的数据库表
格式:docker exec -ti 容器名 pg_dump -U 用户名 -s -t table_name db_name > sql文件保存位置
docker exec -ti group-postgres pg_dump -U leaniot -s -t user_info gis > ./t.sql
如果是远程连接,添加 -h -p参数
docker exec -ti group-postgres pg_dump -h host -p port -U leaniot -s -t quake_info gis > ./t.sql
导入
1. docker cp 命令,把sql文件copy到容器内部根目录
2. docker exec 执行 导入数据库命令
此处使用: sh(bash) -c '命令字符串', 意思是把命令交给shell
docker cp your.sql group-postgres:/ docker exec group-postgres sh -c 'exec psql -U username -d dbname < your.sql'
此处只有一个命令,也可以有多个命令连接起来,但是只能用一个字符串内部连接,因为COMMAND只能是一条语,例如:
docker exec myContainer bash -c "cd /home/myuser/myproject && git fetch ssh://gerrit_server:29418/myparent/myproject ${GERRIT_REFSPEC} && git checkout FETCH_HEAD";