[解決済み】Docker化したPostgresデータベースのデータをボリュームで永続化する方法
2022-04-17 10:40:42
質問
私のdocker composeファイルには、web、nginx、postgresの3つのコンテナがあります。Postgresはこのような感じです。
postgres:
container_name: postgres
restart: always
image: postgres:latest
volumes:
- ./database:/var/lib/postgresql
ports:
- 5432:5432
というローカル フォルダに対応するボリュームをマウントすることです。
./database
として、postgres コンテナ内に
/var/lib/postgres
. これらのコンテナを起動し、postgres にデータを挿入すると、以下のことが確認されます。
/var/lib/postgres/data/base/
は、私が追加するデータ(postgres コンテナ内)でいっぱいですが、私のローカルシステム内では。
./database
を取得するだけです。
data
フォルダの中にある、つまり
./database/data
が作成されますが、空っぽです。なぜでしょうか?
注意事項
アップデイト1
ニックの提案により、私は
docker inspect
を見つけ出した。
"Mounts": [
{
"Source": "/Users/alex/Documents/MyApp/database",
"Destination": "/var/lib/postgresql",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Name": "e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35",
"Source": "/var/lib/docker/volumes/e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35/_data",
"Destination": "/var/lib/postgresql/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
そのため、自分でコーディングしていない別のボリュームにデータを盗まれているように見えるのです。なぜそうなるのかはよくわかりません。postgresイメージは私のためにそのボリュームを作成しているのでしょうか?もしそうなら
そのボリューム
再起動時にマウントしているボリュームの代わりに?そうでなければ、その他のボリュームを無効にして、自分のボリュームを使う良い方法はないでしょうか。
./database
?
アップデイト2
解決策が見つかりました!ニックのおかげです。(そしてもう一人の友人も) 答えは以下の通りです。
解決方法は?
不思議なことに、結局、解決策は
volumes:
- ./postgres-data:/var/lib/postgresql
になります。
volumes:
- ./postgres-data:/var/lib/postgresql/data
関連
-
[解決済み] ポストグレス \コピー構文
-
[解決済み] Rails 4でPostgreSQLサーバーのデフォルトのユーザー名/パスワードは何ですか?
-
[解決済み] Postgresの最大接続数を増やすには?
-
[解決済み] PostgreSQLのCASE ... 複数条件付きEND
-
[解決済み] postgresqlのポートの混乱 5433 or 5432?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み】psqlを使用して、データベースにインストールされている拡張機能を一覧表示するにはどうすればよいですか?
-
[解決済み】PostgreSQLで、既存のテーブルに自動インクリメントの主キーを追加する方法は?
-
[解決済み】PostgreSQLでビューのCREATE VIEWコードを見るには?
-
[解決済み】psql: FATAL: ユーザー "dev" のピア認証に失敗しました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] "psql: サーバーに接続できませんでした。リモートデータベースへの接続時に「Connection refused」エラー
-
[解決済み] Postgresqlの再起動方法
-
[解決済み] Ubuntu 18.04でPostgreSQLを再起動する方法
-
[解決済み] postgresでスーパーユーザーを作成する
-
[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。
-
[解決済み】psql: FATAL: ユーザー "postgres" の Ident 認証に失敗しました。
-
[解決済み】最後に挿入されたIDを取得するPostgreSQL関数
-
[解決済み】Postgresのインストール時に入力したパスワードを忘れてしまいました。
-
[解決済み】Docker-Compose 永続化データ MySQL
-
[解決済み】psql - コマンドの結果をファイルに保存する