ボリューム詳細!
Dockerのボリュームについて!
ボリュームとは
ボリュームとは、Dockerコンテナ上で作成されたデータやファイルをDockerがコンテナ外で管理してくれる仕組みのことです。これによって、Dockerではコンテナを削除してもデータが消失しなくなる、いわゆるデータの永続化が実現します。
さらに、一歩踏み込んで実際にこのボリュームで指定したデータやファイルがどこに保存されるかを確かめましょう。
docker volume ls
#これで現在作成されているvolumeの一覧を表示する
docker volume inspect [ボリューム名]
#これで指定したボリュームの詳細が表示される
表示されているボリュームの詳細から"Mountpoint": "/var/lib/docker/volumes/docker-practice-db-volume/_data",
のようなMountpointを探す。
ここが、ボリュームの実体を保存している場所になる。これをよく見るとdocker desktop上のLinuxのパスであることがわかる。
つまり、DockerのボリュームはDockerDesktopに作成されるLinux上で管理されているということがわかる。そのため、自分のPCを探してもボリュームの実体にはたどり着けない。
裏を返せば、Dockerボリュームはコンテナを削除しても消えないがDockerDesktop自体を削除すると消えてしまうということがわかる。
ボリュームの作成
ここでは、ボリュームの作り方を説明する。
docker volume create [option]
#このコマンドでボリュームの作成ができる。
#[--name ボリューム名]などのオプションをつけるのが一般的
docker volume ls
#このコマンドで作成したボリュームの一覧を確認することができる。
DBコンテナにマウントする
ここでは、--volume
オプションや--mount
オプションを使って作成したボリュームをDBコンテナなどの起動時にマウントする方法について学びます(二つのオプションに大きな違いはない)。
このマウントという動作は、コンテナ外にコンテナから接続する領域を作成することを意味する。
--volumeオプション
このvolumeオプションは、設定を決められた順序で:
区切りで記述することでボリュームをDBなどにマウントすることができる。
ex. --volume docker-practice-db-volume:/var/lib/mysql
上記のように、第一引数にボリューム名を指定して、:で区切り、第二引数にマウントしたいファイルのパスを指定する。
--mountオプション
このmountオプションは、key=value
形式で設定を列挙する。
ex. --mount type=volume,src=docker-practice-db-volume,dst=/var/lib/mysql
上記のようにtypeにvolumeを指定して、scrにボリューム名を指定、dstにマウントしたいファイルパスを指定。
Discussion