Dockerのボリューム永続化が重要な理由とその方法
ボリューム永続化しないとどうなる?
端的に言うと、コンテナ削除時にその「コンテナ内に作成したデータが削除」されています。
しかし、ボリューム永続化を行うことで、コンテナが消えてもデータを失わずに保持できるようになります。
そんなボリューム永続化の方法について解説していきます。
ボリューム永続化の2つの方法
ボリューム永続化方法にはvolumesを使用する方法とbind mountの2つがあります。
それぞれの利点と使用するケースを挙げていきます。
volumes
volumesを使用する場合、Dockerが管理するファイルシステムにデータを保存します。
メリット:Dockerが管理するファイルシステムなのでファイルへのアクセスが速いです。
使用例:データベースなどのデータのやりとりが多いアプリケーションで使用します。
bind mount
bind mountを使用するとホストの特定のディレクトリをコンテナと共有できます。
メリット:コンテナ内からホストのファイルを直接参照でき、ソースコードの修正が即時反映されるため、開発作業に便利です。
使用例:ソースコードなど、頻繁に更新する必要があるデータを扱う場合に適しています。
volumesで永続化する方法
イメージがついてきたともうので早速、volumesで永続化する方法を紹介していきます。
volumesで永続化する場合、以下のコマンドでvolumeを作成し、コンテナ起動時にマウントします。
volume作成:「docker volume create <volume名>」
コンテナ起動:「docker run -v <volume名>:<コンテナのディレクトリ> <イメージ名>」
例docker volume create my_volume docker run -v my_volume:/path/to/container/dir my_image
bind mountで永続化する方法
次にbind mountで永続化する方法を紹介します。
volumesで永続化する場合、以下のコマンドでホストのディレクトリをコンテナ起動時にマウントします。
コンテナ起動:「docker run -v <ホストのディレクトリ>:<コンテナのディレクトリ> <イメージ名>」
例docker run -v /host/path:/path/to/container/dir my_image
最後に
今回は「Dockerのボリューム永続化」について解説しました。今後の記事では、具体例を用いてvolumesやbind mountについて体験できる記事を書こうと思います。よりdockerについて学んでみたいという方はぜひウォッチしてみてください!
今回の記事が役に立った、ほかにも記事が見たいという方は最新情報を公式Xで配信しているのでフォローお願いします!