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を使用すると、ソリューションがよりエレガントになることを私は知っています。しかし、環境を知らないバックアップ スクリプトを作成したいと考えています。
どのような戦略を使用できますか?