🐳
Windows (WSL)にDocker Desktop無しでDocker Community Editionをインストールする
背景
- Docker Desktopは従業員が250人を超える組織、または利用規約に従って年間収益が1,000万ドルを超える組織の場合、ユーザーごとの有料サブスクリプションが必要
- WindowsでDocker Desktopを使わずにDockerを使いたい
ゴール
- WindowsでDocker Desktopを使わずにDockerを使えるようにする
手順
WSL インストール
Windows自体にはDocker Desktopしか入らないため、Windows上でUbuntuを動かす、Windows Subsystem for Linux (WSL)をインストールする必要があります。
- PowerShellを管理者権限で開いて以下のコマンドを打つ
wsl --install
Docker Community Edition インストール
基本はUbuntuでのインストール方法と同じです。コマンドプロンプトやPowerShellではなく、WSLのターミナルで行う必要があります。
リポジトリのセットアップ
- パッケージインストール
sudo apt update
sudo apt install ca-certificates curl gnupg
-
/etc/apt/keyrings
ディレクトリ作成 - GPG(GNU Privacy Guard)キーをダウンロードして
/etc/apt/keyrings
に配置する- パッケージの配布先をチェックするためのもの
-
chmod a+r
:全体に読み取り権限を与える
sudo install -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
- リポジトリのセットアップ
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker インストール
- パッケージインストール
- インストールの確認
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
ここまででインストールは完了しますが、sudo無しでdocker
を打つとエラーになります。
dockerコマンドをsudo無しで打てるようにする
dockerグループの作成
- docker groupの作成
- ユーザーにdockerグループを追加する
- ユーザーのグループを確認
sudo groupadd docker
sudo usermod -aG docker $USER
groups $USER
WSL初期化時にDocker Daemonを開始する
Windows11の場合
-
/etc/wsl.conf
をVSCodeで開く
code /etc/wsl.conf
- 以下を追加して保存
[boot]
systemd=true
Windows10の場合
-
~/.profile
をVSCodeで開く
code ~/.profile
- 以下を追加して保存
if service docker status 2>&1 | grep -q "is not running"; then
wsl.exe -d "${WSL_DISTRO_NAME}" -u root -e /usr/sbin/service docker start >/dev/null 2>&1
fi
ターミナルを再起動して、dockerコマンドがsudo無しで打てるか確認
wsl.exe --shutdown
docker run hello-world
これで完了です。お疲れ様でした。
備考
-
docker-compose
は、docker compose
になりました
参考
- https://learn.microsoft.com/ja-jp/windows/wsl/install
- https://blog.jp.square-enix.com/iteng-blog/posts/00024-wsl2-docker-ce/
- https://dev.to/felipecrs/simply-run-docker-on-wsl2-3o8
- https://docs.docker.com/engine/install/ubuntu/
- https://xtech.nikkei.com/it/article/Keyword/20091204/341579/
- https://www.docker.com/pricing/faq/
- https://zenn.dev/snowcait/scraps/76ca2a959fce47
Discussion