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 1 year has passed since last update.

Dockerのマウントって何ですか?

0
Last updated at Posted at 2024-10-20

はじめに

 Docker触ったことあるけど体系的に学びたいと思い「仕組みと使い方がわかるDocker&Kubernatesのきほんのきほん」を読み、マウントについて全然理解できてなかったと気づいたため記事に残します。

マウントとは

 マウント(mount)とは英語で「取り付ける」という意味であり、その意味通りマウントの対象をOSやソフトウェア、コンテナなどに取り付け、支配下に置くことです。

マウントすると何がいい?

 コンテナなど削除前提のモノの場合、もしデータがコンテナ内にあるとコンテナの削除のタイミングでデータも消えてしまいます。そのためコンテナでは外にデータを保存し、アクセスするのが一般的で、このことをデータの永続化と言います。また、この外の保存場所がマウントした記憶領域になります。

Dockerの3種類のマウント

マウントの方式にはボリュームマウントとバインドマウントと一時メモリマウントがあります。

ボリュームマウント

 ボリュームマウントはDocker Engineの管理下にボリュームを作成し、コンテナにマウントする方式です。
 名前を指定するだけで簡単に使用できたり、手軽に扱えますがボリュームに対して直接的な操作がしづらいので「仮で使う場合」や「消してはいけない場合」に使われることが多いです。

バインドマウント

 バインドマウントはDocker Engineの管理していない場所のディレクトリなどにマウントする方法です。
フォルダなど直接ファイルを作成したり編集したりすることができるため「頻繁に触りたい場合」に使われることが多いです。

一時メモリマウント

 一時メモリマウントはその名の通りメモリをマウントする方法です。
 ディスクを使用するより高速に読み書きがでるため「アクセスを早くしたい場合」に使われることが多いです。しかしメモリのデータはDocker Engineの停止やホストの再起動などで消滅します。

関連コマンド

記憶領域を作成するコマンド

 docker volume create ボリューム名

記憶領域を削除するコマンド

docker volumen rm ボリューム名

記憶領域をマウントするコマンド

ボリュームマウントの記述方法

  docker run (省略) -v ボリューム名: コンテナの記憶領域パス (省略)

バインドマウントの記述方法

  docker run (省略) -v 実際の記憶領域パス:コンテナの記憶領域パス (省略)

おわりに

マウントについてほんわりとした理解から少しだけ理解が増しました。
それぞれの使用用途についてもよくわかりました。
記事の中で間違い、不備がありましたらコメントお願いします。

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?