導出
-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";