Docker Postgresでリストアする

Posted by garbanzo on Tue, Nov 14, 2017

目次

Docker の Postgres にダンプファイルからリストアする手順

Docker で Posgres を起動する

% docker run -d -p 5432:5432 postgres:9.4.1 postgres

コマンドで Postgres を起動する

オプションの説明は以下

  • -d :でデーモン化する
  • -p :ポート(フォワード)を指定

もし、ダンプファイルがホスト PC にある場合は、-v(volums)で接続する

% docker run -it -d -v $(pwd):/tmp -p 5432:5432 postgres postgres
  • -v: pwd の場所が docker 内部の/tmp ディレクトと結合する。

Restore する

pg_restoreコマンドを使用してリストアする

  1. まずは、Docker にログイン
% docker exec -it {コンテナID} /bin/bash

※コンテナ ID は docker ps で確認する

  1. Docker 内部でリストアコマンドを実行する
$ pg_restore -d {DB名} -U postgres {ダンプファイルパス}
//例
$ pg_restore -d 'Price' -U postgres /tmp/price.pgdump

おまけ:dump

pg_dumpでダンプファイルを生成する方法

$ pg_dump -Fc -h {IP} -p {Port} -U {ユーザ名} -d {DB名} > /path/db_dmp.backup
//例
$ pg_dump -Fc -h 127.0.0.1 -p 5433 -U postgres -d sample > /var/lib/pgsql/9.4/data/sample_dmp.backup
Buy Me A Coffee