WindowsにDocker環境作る(DockerDesktop)

事前知識

VMWare時代の人間なので、まずは改めて外編をおさらい。

VMWareとかVirtualBoxなどの仮想化はゲストOSを立ち上げているため環境を選ばないが重く、DockerはOSはLinux縛りだがローカルに依存し、その上でコンテナ単位で動かすので扱いやすく高速。

じゃあアプリ開発する場合なら全部Dockerでいいんじゃないですか、という感じですが、上位互換というわけではなく環境をまるごと作る仮想サーバとコンテナではそれぞれ特徴があるので、ちゃんと理解しながら運用しようねと。
参考。
blog.inductor.me


それからここ10年くらいの、Vagurantも絡めたトレンド変遷。
これについてはこちらの記事がとても分かりやすい。
gomokulog.gomocool.net

ずっと開発してきている人なら当然のように知っている流れでしょうが、しばらくこういう開発現場から離れていたのでね。こういう理解はとても大事。

そういえば数年前、WindowsにDocker入れるためにWSL2の設定しようとして、その時初めて、ネットで購入した中古PCが「Pro」じゃなく「Home」だった事に気付いて絶望したなぁ。(Win10のHomeはWSL2無いです)
もちろん発送側のミスだけど、受け取ってしばらく経ってたから交換してもらえなかった…。

環境

エディション Windows 11 Pro
バージョン 22H2

インストール(再起動2回)

WindowsにWSL2をインストール

管理者権限でPowerShellを開き、以下を実行。

wsl --install

再起動せよと表示されますので、PCを再起動。

Ubuntuのユーザー登録

PCが立ち上がると勝手にUbuntuも起動してくれている。だいぶ親切になったようです。
このUbuntuが、WSL2を動かすディストリビューション(Linux)にあたるのだと思います。

要求通り、適当にユーザー名とパスワードを入力。

起動してこなかった場合は、アプリの一覧から「Ubuntu」とか「WSL」とか探して起動すればよさそうです。

Docker for Windowsをダウンロード

こちらから。
https://docs.docker.com/desktop/install/windows-install/

インストール

「Docker Desktop Installer.exe」がDLされますので、素直に設定してインストール。

再起動

これを押すとPC再起動しますので注意。(油断してた)

使用許諾

Docker Desktop を起動するとコレが出てきます。
なにやら金額が書いてありますが、個人利用なら無料なのでそのままAcceptしてよさそうです。

起動しました

Updateがあるのでバージョンアップし、アカウントも以前作成したのでログイン。

カレントの場所

さて、だいたいこの後の作業で「カレントディレクトリで…」みたいなことになるのですが、いったいこの場合のカレントはどこなのか。
Explorer上のアドレスはここです。

\\wsl.localhost\Ubuntu\home\%username%

エクスプローラでは以下の様に見えているはずなので、Ubuntuフォルダから素直に掘っていってもよさそうです。

また、Dockerを触るターミナルは色々なパターンがありそう。

  • Windowsメニューから「Ubuntu」を選択(上記で作成したユーザーのログイン状態でターミナルが起動)
  • Windowsメニューから「WSL」を選択(上記と同様、ログイン状態でターミナルが起動)
  • PowerShellを管理者権限で実行し、「wsl」と打つ(Ubuntuにログインできる。ただしカレントディレクトリが、Ubuntuから見たWindowsディレクトリという謎な状態になる)
イメージとコンテナの場所

ちなみに、コンテナとイメージはそれぞれ以下に配置されるようです。
基本的な操作ではアクセスすることはおそらく無い。

# イメージやコンテナ
%LocalAppData%\Docker\wsl\data\ext4.vhdx

# エンジン
%LocalAppData%\Docker\wsl\distro\ext4.vhdx