今回紹介するテーマは「WSL2 + Docker Engineで無料運用する方法」です。
最近、企業向けの「Docker Desktop」が条件を満たしてしまうと有料になってしまいました。個人だと基本的に無料利用できるのですが、会社で今まで無料だったものが突然有料化してしまったので「Docker Desktop」を使わずに、Windowsで運用する方法を見つけましたので紹介します。
Docker Desktopの有料化について
2021年9月に有料化し、2022年1月31日で、無料で使える猶予期間が終了してしまいました。
有料になる条件は、「250人以上」もしくは「年間売上1000万ドル以上の組織」で有料になります。
料金等詳しい内容は以下の公式サイトでご確認下さい。
WSL2のインストール
WSL2のインストールを行います。
Windows10 version 2004移行で「KB5004296」を適用済みの場合
以下のコマンドを「PowerShell」または「コマンドプロンプト」の管理者権限で動かすだけでWSL2+ubuntuがインストール完了します。
wsl --install
このあとで再起動すると、ubuntuもインストールされます。
上記以外の場合
上記以外の場合は、以下の2つのコマンドを「PowerShell」または「コマンドプロンプト」の管理者権限で実行します。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all
次に、ubuntuをMicrosoft Storeからインストールします。
インストール後再起動します。
Linux カーネル更新プログラム パッケージをダウンロード
次に以下から更新プログラム「wsl_update_x64.msi」をダウンロードしてインストールします。
WSL2を規定のバージョンに設定する
WSL2を規定のバージョンにします。
wsl --set-default-version 2
ubuntuにDocker Engineをインストールしていく
公式ドキュメント通りにUbuntuにDocker Engineをインストールしていきます。
Dockerのインストールをする
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo権限付与を付与する
sudo usermod -aG docker $USER
docker compose v2もインストールする
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
docker compose version
ここまで実行したらまた再起動します。
Dockerのスタートアップ起動をできるようにする
WSLでは、systemdが使えないせいで通常のサービス起動ができません。
代わりに、Windows側からwslに対してserviceの起動を命令できるので、これを利用します。
以下のバッチを作成します。
@echo off
wsl -u root -- service docker start * Starting Docker: docker
これをスタートアップにいれます。
「Windowsキー+R」 ファイル名を指定して実行を起動して
shell:startup
でここにバッチファイルを置きます。
これで、windows起動時にdockerサービスが起動できるようになります。
バッチを管理者として実行することで手動でもサービス起動されることができます。
以上、で設定完了です。
まとめ
今回、「WSL2 + Docker Engineで無料運用する方法」を紹介しました。
- WSL2のインストール方法
- ubuntuのインストール方法
- dockerのインストール方法
- docker composeのインストール方法
- dockerの初回サービス起動
WSL2だと普段のubuntuでできることができなかったりするので、私と同じようにつまづいた方の助けになれば良いなと思いこの記事を書きました。
今回の記事が、皆さんの技術力向上につながると嬉しいです。
以上、おつかれさまでした!