1

私はdockerとpostgresqlの両方の初心者です。既存のデータを削除せずにDocker Postgresqlをアップグレードするにはどうすればよいですか?

現在のデータベース を失うことなく、docker postgresql 9.5を9.6にアップグレードするにはどうすればよいですか? fyi:私はubuntuバージョン14とドッカーを使用しています。17.09

ありがとうございます。

+0

私はどのようにドッカーのコンテナを実行してください表示させてください。どこでポストデータを保存しますか? –

+0

私はどのようにdockerコンテナを実行するのですか?d -p 5432:5432 my_image service postgresql start – Blackjack

答えて

0

ドッカーコンテナを介してデータを保持するには、ボリュームが必要です。このボリュームは、コンテナのファイルシステムに直接マウントされ、コンテナが強制終了されたときに辛抱強くなります。コンテナはボリュームを付けずに作成されたものの、音が鳴ります。そのデータを取得する最も良い方法は、コンテナのデータフォルダをコピーしてホストファイルシステムに移動することです。次に、新しいイメージでドッカーコンテナを作成します。この場合、PGDATAで実行されているコンテナのデータディレクトリにデータディレクトリをコピーします。私はただ、現在のデータベースをダンプします作業、およびそれらを再アップロードしていないの/ var/libに/ postgresqlの/データ

場合
docker cp [containerID]:/var/lib/postgresql/data /home/user/data/data-dir/ 
docker stop [containerID] 
docker run -it --rm -v pgdata:/var/lib/postgresql/data postgres 
docker cp /home/user/data/data-dir [containereID]:/var/lib/postgresql/data 

新しい容器に

+0

あなたの助けに感謝します。しかし、私はまだコンテナのデータフォルダをコピーし、ホストファイルシステムに移動する方法を見つけることができません。何か案が ? – Blackjack

0

データベースファイルを外部ストレージ(コンテナの外)に保存しません。 その後、私はあなたのデータベースを格納するための唯一の1の方法を知っている:新しいpostgresの9.6コンテナ
4を実行します)

1)バックアップデータベース
2)シャットダウンが9.5コンテナ
3をPostgresは)あなたが使用することができ、バックアップ

を復元しますpg_dumpall完全なデータベースをbackupingため:

pg_dumpall > backupfile 

得られたダンプはpsqlで復元することができる。

psql -f backup postgres 
+0

実際に私がpostgresを検査すると、ボリュームはすでに直接マウントされています。だから、私は再びpg_dumpを行うべきですか? – Blackjack

関連する問題