Docker上での記憶領域について
ちょっと気になったのでDockerDesktop for WindowsとLinuxでのDockerのvolumeについてメモ。
確認用コマンド
// Docker上のボリューム一覧
docker volume ls
//指定ボリュームの詳細情報
docker volume inspect <VOLUME NAME>
DockerDesktop for Windows
dockerを利用するために利用しているWindows Subsystem for Linux内にコンテナやイメージが保持されている。
windowsのボリューム上に仮想Linuxディスクイメージが保存されている。
windows用の仮想linuxディスクイメージ
C:\ProgramData\DockerDesktop\vm-data\Dockerdesktop.vhdx
WSL上でのマウントポイントを調べてみると、
仮想Linux上のマウントポイント
"Mountpoint": "/var/lib/docker/volumes/<VOLUME NAME>/_data"
docker-compose.ymlで指定したvolumesのpathにmongoDBのデータが保存されているっぽい。
DockerEngin(linux)
linux上にdockerを構築した場合はホストOSのボリュームに直接コンテナのデータなどが保存される模様。
dockerのボリューム位置を確認すると以下の場所に格納されていた。
Linux上のマウントポイント
"Mountpoint": "/var/lib/docker/volumes/<VOLUME NAME>/_data"
Mountpointで指定されているpathにアクセスしてみると、実際にコンテナ内のデータを確認することができる。
ボリュームの挙動について
volumeが削除されない限りは
docker-compose.ymlのvolumeの設定を以前のvolumeと同じpathを指定すればmongoDBのデータは引き継がれて使える模様。
(コンテナやイメージを削除してもvolumeは削除されずホストOS内に残っている)