こんにちは。まゆみです。
Dockerについての記事をシリーズで書いています。
前回の記事では、データベース・バックエンド・フロントエンドのContainerをつなぎ、それぞれのContainerでコミュニケーションができるようにしました。(データベースにはmongodbを使用しました。)
Containerをつなげることには成功しましたが、あのままでは、mongodbのContainerを削除した時にContainerと共にデータも消えてしまいます。
今回の記事では、コンテナを削除してもデータベースは単独で生き残らせるにはどうしたら良いのかということに焦点を置いて書いていこうと思います。
ではさっそく始めていきますね。
#Named Volumeを使う
Containerを消しても、データだけは生き残らせるためには、Named VolumeというContainerからは切り離されたVolumeを作る必要があります
以前の記事で、Named Volumeについては軽く触れていますので、興味のある方はこちらからどうぞ
#オフィシャルのmongoイメージを使う時のContainer側のデータの保存先
Named Volumeは下記のように、:(コロン)をはさんで左側にホスト側のディレクトリ右側にContainer側のディレクトリを書きます
-v <あなたの好きな保存先の名前> : <Container側のディレクトリ>
ただオフィシャルのmongoイメージを使う時、『Containerのどこにデータの保存先のディレクトリがあるのか』分からないですよね。
そこで、ドキュメントを見てみましょう。
-v <ホスト側のディレクトリ> :/data/db
:の左側に書く、『ホスト側のディレクトリ』に関してはあなたが好きなところに作ってかまいません。(公式のドキュメントをそのままコピペする必要はありません)
ただ:の右側に書く『Container側のディレクトリ』に関しては、公式ドキュメントに書かれている通り
/data/db
と書きましょう
これで、例えContainerを削除したとしても、データは切り離されて生き続けます
#データを見るには?
docker volume ls
で今まで作ったVolumeのリストを表示する事ができます
VOLUME NAMEにdataと名前が付けられているのが、今回作ったNamed Volumeになります
#まとめ
今回の記事はここで終わりにしますね。
次回の記事では、データベースのセキュリティについて書いていこうと思います
どうぞ、よろしくお願いいたします。<(_ _)>