2

docker-compose を使用してアプリケーションを起動します。1 つのコンテナーは postgresql を使用します。

tar.gzコンテナボリュームをファイルにバックアップするスクリプトを作成しました。

backup.tar.gz

├── base
├── _data
├── ...
├── pg_hba.conf
└── old.txt

ボリューム内のファイルを検査すると、old.txt はありません

sudo tree -L 1 /var/lib/docker/volumes/application_postgresql/_data 
├── base
├── _data
├── ...
└── pg_hba.conf

コンテナーを停止し ( docker-compose stop db)、展開し/var/lib/docker/volumes/application_postgresql/_dataてコンテナーを再起動します ( docker-compose restart db)。しかし、うまくいかなかったようです。

ファイルはよさそうだ

sudo tree -L 1 /var/lib/docker/volumes/application_postgresql/_data 
├── base
├── _data
├── ...
├── pg_hba.conf
└── old.txt

しかし、私のコンテナは開始したくありません

db_1 | initdb: directory "/var/lib/postgresql/data" exists but is not empty
db_1 | If you want to create a new database system, either remove or empty
db_1 | the directory "/var/lib/postgresql/data" or run initdb
db_1 | with an argument other than "/var/lib/postgresql/data".

postgresql ボリュームを復元するにはどうすればよいですか?

pgdumpを使用すると、ソリューションがよりエレガントになることを私は知っています。しかし、環境を知らないバックアップ スクリプトを作成したいと考えています。

どのような戦略を使用できますか?

4

0 に答える 0