0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Docker】コンテナを削除した後もデータが残るデータベースを作るには no.22

Posted at

パンプキン カフェ (9).png

こんにちは。まゆみです。

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のどこにデータの保存先のディレクトリがあるのか』分からないですよね。

そこで、ドキュメントを見てみましょう。

2021-06-30_14-08-03.png

2021-06-30_14-12-35.png

-v <ホスト側のディレクトリ> :/data/db

:の左側に書く、『ホスト側のディレクトリ』に関してはあなたが好きなところに作ってかまいません。(公式のドキュメントをそのままコピペする必要はありません)

ただ:の右側に書く『Container側のディレクトリ』に関しては、公式ドキュメントに書かれている通り

/data/db

と書きましょう

2021-06-30_14-22-34.png

これで、例えContainerを削除したとしても、データは切り離されて生き続けます

#データを見るには?

docker volume ls

で今まで作ったVolumeのリストを表示する事ができます

2021-06-30_14-30-29.png

VOLUME NAMEにdataと名前が付けられているのが、今回作ったNamed Volumeになります

#まとめ
今回の記事はここで終わりにしますね。

次回の記事では、データベースのセキュリティについて書いていこうと思います

どうぞ、よろしくお願いいたします。<(_ _)>

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?