Docker Desktop for Windowsのファイル場所
WSL2を使用したWindows版のDockerでは、Overray2の保存場所がinspectした時に記載されている場所が異なります。
$ docker image inspect hello-world [ { "Id":.. ... "GraphDriver": { "Data": { "MergedDir": "/var/lib/docker/overlay2/9f8ec5a976d631b0096dd483c7b83f34137b3ffcde0ea177b5416086e4211423/merged", "UpperDir": "/var/lib/docker/overlay2/9f8ec5a976d631b0096dd483c7b83f34137b3ffcde0ea177b5416086e4211423/diff", "WorkDir": "/var/lib/docker/overlay2/9f8ec5a976d631b0096dd483c7b83f34137b3ffcde0ea177b5416086e4211423/work" }, "Name": "overlay2" }, ....
というように記述されていますが、WSL2で/var/lib/dockerディレクトリは存在していません。
DockerはWSL2同様にLinuxカーネルを使用するため、実際にはWindows上に仮想マシンを起動(Docker Desktop)しており、上記パスはその仮想マシン内のパスを表しています。
どこから見れるのか、というとWindowsでは下記の場所に存在しています。
\\wsl$\docker-desktop-data\version-pack-data\community\docker\overlay2\9f8ec5a976d631b0096dd483c7b83f34137b3ffcde0ea177b5416086e4211423\diff
試しにテストで新しくボリュームを作成してみます。
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes
にボリュームが格納されてますが、今はボリュームが1つも作成されていない状態なので、最初から存在しているmetadata.dbしかありません。
$ docker volume ls DRIVER VOLUME NAME
ボリュームを新しく作成します。
$ docker volume create vol_test vol_test $ docker volume ls DRIVER VOLUME NAME local vol_test $ docker volume inspect vol_test [ { "CreatedAt": "2020-10-19T08:22:13Z", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/vol_test/_data", "Name": "vol_test", "Options": {}, "Scope": "local" } ]
Mountpointは、"/var/lib/docker/volumes/vol_test/_data"と記載されていますが、WSL上では、
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\vol_test\_data
に新しく作成されています。
(しかし、Ubuntuからこのディレクトリを参照する方法がわかりません...誰か教えてください)
ホストOSがLinuxの場合は、ホストOSのファイルシステムを利用しているとのことです。
WSL2はHyper V上にLinuxカーネルを再現しているため
Overray2に関する記事は下記で詳しく書かれてますので参考に。
qiita.com
tech-lab.sios.jp