dockerが実行されるのはdocker-desktop側で、WSL2(CentOS7)側でもWindows側でも直接実行はしておらず、docker-desktop上のプロセスを操作しているだけな認識ですがあっていますでしょうか?
認識としては概ね合っていると思います。(思います、というのは Docker Desktop は全てのソースコードが公開されておらず、公開されているドキュメントや発表、実装などから推測すると、そのような認識あっているという考えです)。
実際、 wsl 上で実行する docker
コマンドのパスは /usr/bin/docker
ですが、これはシンボリックリンクです。ls -al /usr/bin/docker
を実行すると、実体として実行しているのは /mnt/wsl/docker-desktop
( LinuxKit という、Read Only の Docker Engine を動かすための Linux ディストリビューションのファイル領域にあります) を見ています。
shell
1docker@example:/mnt/c/WINDOWS/system32$ ll /usr/bin/docker
2lrwxrwxrwx 1 root root 48 Jun 8 21:12 /usr/bin/docker -> /mnt/wsl/docker-desktop/cli-tools/usr/bin/docker*
より詳細な情報や、LinuxKit の関係性については、以下の情報に掲載されている図が参考になります。
、Windows 上でも同様で、PowerShell 上からは dir \.\pipe\
を実行して見えるパイプを通して Docker Desktop VM と通信しているようです。
wsl.confでパーミッションをいじるため、optionsにumask=22等設定したい場合、wsl.confはCentOS7側だけ設定で大丈夫でしょうか?docker-desktop側も設定必要でしょうか?(CentOS7からコマンド実行した場合に、Dockerがどのディストリビューションの設定を見て動作するのかが分からないです)
umask の指定は、CentOS 7 側だけで想定通りの挙動になるはずです。Docker Desktop を起動している場合は、WSL 上で ls -al /mnt/wsl/
を実行すると、 Docker Engine 側の本体用プログラムやバイナリ、Linux ディストリビューションをバインドマウントするための領域、ボリューム用として使うためのデータ領域が見えます。これらの領域は、それぞれ直接操作するものではなく、Docker Desktop の Docker Engine を通して見えています。
docker@example:/mnt/c/WINDOWS/system32$ ll /mnt/wsl/
total 4
drwxrwxrwt 5 root root 100 Jun 8 21:12 ./
drwxr-xr-x 4 root root 4096 May 23 2020 ../
drwxr-xr-x 4 root root 100 Jun 8 21:12 docker-desktop/
drwxr-xr-x 3 root root 60 Jun 8 21:12 docker-desktop-bind-mounts/
drwxr-xr-x 6 root root 120 Jun 8 21:12 docker-desktop-data/