ほりひログ

所属組織の製品 (Azure とか) に関連する内容が多めだけど、個人の見解であって、所属組織を代表する公式情報ではないです。

Docker Desktop なしで VSCode の DevContainer を使う

Docker Desktop ライセンスが変わり、個人利用か比較的小規模な事業者*1での利用に限った場合だけ、無料になりました。
# Docker CLI、Docker Engine は変わらず無料です。

www.docker.com

というわけで、仕事をする PC で Docker Desktop を使ってお金払わないとライセンス違反になるのでアンインストールしたいのですが、Docker Desktop が WSL2 をサポートして以来、すっかりに頼ってきました。
特に Docker Desktop をアンインストールした場合、VSCode の devcontainer を使った作業ができなくなるのはつらいので、そこだけ早めに確認してみました。

ザックリ結論

  • WSL2 に Docker Engine を入れる
  • Windows 側の VSCode に Remote-Containers 拡張機能を入れる
  • VSCode で開く作業フォルダーは、WSL2 の中のやつ

これをやっておけば、Docker Desktop がなくても、今まで通り devcontainer での作業ができます。

構築手順

そんなにやることないですが、一応まとめます。

1. Docker Desktop アンインストール

もしまだ Docker Desktop が入っていたら、通常の手順に従って完全に消し去ってください。
コントロール パネルから消せます。

2. Ubuntu on WSL2 に docker をインストール

お使いの WSL2 の distro に合わせてお好みで。

docs.docker.com

Ubuntu であれば、コマンドをコピペして apt をガシガシたたいたら入ります。

WSL2 の bash から sudo service docker start などを実行すると動き始めます。

むかーしは cgroup ?的な何か? (おぼえてない) の設定等も必要だった気もしたのですが、今はいらないみたいです*2

VSCode の devcontainer で開く

Remote-Containers 拡張機能は必要です。既に使っているなら入っているままで問題ありません。

ポイントは、VSCode で作業フォルダーを開く時に、

\\wsl$\<ディストリビューション名>\PATH\TO\PROJECT\FOLDER

のように \\wsl$\<ディストリビューション名>\ 以下のフォルダーを開くことです。
中身は、WSL2 の / ディレクトリーですが、Windows からネットワーク フォルダーとして見えます。

f:id:horihiro:20210902192117p:plain

ここを普通に Windows のフォルダーとして開いた後、Remote-Containers の機能で devcontainer で開きなおすだけです。

f:id:horihiro:20210902192256p:plain

なお Git リポジトリーを clone して開く場合も、\\wsl$\<ディストリビューション名>\ 配下のディレクトリーを指定して clone し、その後、Windows フォルダーとして開く -> DevConainer で開きなおす、という手順で開けます。

以上の手順で devcontainer が Docker Desktop なしで開けることがわかりました。

さよなら Docker Desktop 。今までありがとう。

*1:従業員数250人未満、かつ、年間収益1,000万ドル未満

*2:WSL1 の頃?