こんにちは、全力開発部の @konoka-iori です。

脱Docker DesktopしてWSL2とDev Containerを使った開発環境に移行しました。

前に開発環境をDev Containerでコンテナー化してみたよという記事も書いているので、そちらも参考にしてみてください。 (この記事を書いている段階ではまだDocker Desktopを使っていました)

開発環境をDev Containerを使ってコンテナー化してみた - 全力開発ブログ

Docker Desktopやめたい理由

Docker DesktopはWindowsでDockerを使う際に便利なツールですが、開発したいときに毎回Docker DesktopとVS Codeをそれぞれ開く必要がありました。

極度のめんどくさがり屋な私は、毎回Docker Desktopも一緒に開かなくてはいけないというのが面倒だと感じていました。

常時起動しておくこともできますが、私は開発以外にも生成AIからゲームまで幅広い用途でPCを使っています。

とくにゲームのマッチング待機中に開発していることもあるため、マッチングしたらPCには即開発用のリソースを解放してゲームの処理に集中してほしいという変な要望があったのです。

(私が主にやっているタンクやヒーラーのジョブは戦闘中落ちるわけにはいかず……身内のPTだからまだよかったものの、IDでタンクに全まとめさせておいて落ちるヒーラーとか最悪ですからね。あと、フリーズしたタンクからヘイトを奪うピクトマンサーとか。なんかピクトマンサーの火力高すぎません?)

ほかにも、

  • 正直、Docker Desktopの機能を使い切れていない
  • たまにDocker Desktopが重い
  • Docker Desktopを更新しようとしたら、更新が終わらなくなりトラブルになったことがあった
  • なんかライセンス問題で巷がざわついてる(個人利用だからあまり関係ない……?)

などなど。 Windowsで気軽にDocker使えるのは良いのですが、もうちょっと軽くてシンプルな方法はないかなと思いました。

Docker Desktop内部ではWSL2を使用しているため、「どうせWSL2使っているのだから、もう直接WSL2内にDockerをインストールしてVS CodeのDev Containerを使えばいいのでは?」と気持ちもありました。

Docker Desktopとの別れ

Docker Desktopには、はじめてDockerに触れたときから大変お世話になりました。 素晴らしいツールをありがとうございました。

Docker Desktopは普通のWindowsアプリケーションと同じ方法でアンインストールできると思いますが、私はちょうど別件でWindowsをクリーンインストールしたかったので、その際にDocker Desktopも一緒に散っていきました。

WSL2とVS Codeをインストール

新環境のWindowsには当然なにもインストールされていません。

まずはWSL2をインストールします。 WSLのインストールは非常に簡単で、以下のコマンドをPowerShellで実行するだけです。

PowerShell
1
wsl --install

Ubuntuを指定したい場合は、以下のコマンドを実行します。

PowerShell
1
wsl --install -d Ubuntu

WSL2が正しくインストールされているか確認するために、以下のコマンドを実行します。

PowerShell
1
wsl --list --verbose

その後、息を吸うように VS Code をインストールしたのち、Dev Containerをインストールします。

Dev Containers - Visual Studio Marketplace -

Extension for Visual Studio Code - Open any folder or repository inside a Docker container and take advantage of Visual Studio Code's full feature set.

WSL2にDockerをインストール

WSL2といっても中身はUbuntuです。そのため、通常のUbuntuと同様にDockerをインストールします。

Windows TerminalなどからWSL2のUbuntuに接続し、以下のコマンドを実行します。

bash
1
2
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

get.docker.com からDockerをワンライナーでインストールするスクリプトをダウンロードして実行するだけです。便利ですね。

Note
get.docker.com のスクリプトは、Docker公式から提供されているものです。 このGitHubリポジトリで開発されています。

以下のコマンドでDockerが正しくインストールされているか確認します。

bash
1
docker version

Dev Containerをセットアップする

次に、VS CodeでDev Containerの設定を行います。

WSL2でDev Containerを使う場合、以下の設定を行います。

setting.json
1
"dev.containers.executeInWSL": true

この設定しておかないとWindows側のDockerを使おうとしてしまい、WSL2内のDockerを使うことができません。

詳しくは以下の記事を参考にしてください。私がここで沼った話を書いています。

WSL内でDev Container使おうとしたら沼った話 - 全力開発ブログ

また、私は以下のような設定も追加で行いました。

setting.json
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "dev.containers.cacheVolume": false, // キャッシュを使わない
  "dev.containers.copyGitConfig": true, // WSL2内のGit設定をコピー
  "dev.containers.defaultExtensions": [
    "GitHub.copilot",
    "GitHub.copilot-chat",
    "GitHub.vscode-pull-request-github",
    "ms-vscode.vscode-websearchforcopilot"
  ], //必要に応じていつも使う拡張機能を追加(拡張機能は例)
}
Tip
dev.containers.copyGitConfigTrue にすると、WSL2内にGitの設定を行っておくだけでDockerコンテナーの中でもGitの設定がそのまま使えるようになるのでおすすめです。

Dev Containerで全力開発する

あとは、Docker Desktopを使っていたときと同じ流れで環境構築を行います。

VS CodeのDev Containerで「Reopen in Container(コンテナーで開く)」または「Clone Repository in Container Volume(コンテナーボリュームにリポジトリを複製)」を選択して、開発を始めるだけです。

Dev Containerの使い方は以下の記事を参考にしてください。

開発環境をDev Containerを使ってコンテナー化してみた - 全力開発ブログ

まとめ

これでDocker Desktopから卒業することができました。

Docker Desktopは非常に便利なツールですが、私のような使い方をする場合はWSL2とDev Containerのほうが軽くてシンプルで使いやすいと感じました。

私と同じように、Docker Desktopやめたいと考えている方の参考になれば幸いです。