2022-02-13 Sun: Docker Desktop 依存をやめる for Windows (WSL2)
目的
Docker Desktop が 2022/02 から有料化されるので、依存をなくしたい。
ゴール
Docker CE + WSL2 で開発環境構築ができること
手順
Docker Desktop のアンインストール
プログラムの追加と削除 から、よしなに
WSL2 から Docker Desktop 関連のサブシステムを削除
アンインストールしただけでは、Docker Desktop の環境として利用されていたサブシステムが削除されない。
そのため、別途こちらの作業が必要になる。
Powershell or cmd にて。
サブシステムの一覧で削除対象がいるかを確認
docker-desktop-data docker-desktop が今回の削除対象
code:ps1
❯ wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-20.04 (既定)
docker-desktop-data
docker-desktop
対象がいることを確認したら、下記にて削除を実行
code:ps1
wsl --unregister docker-desktop-data
wsl --unregister docker-desktop
削除結果確認
code:ps1
❯ wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-20.04 (既定)
以降全ての手順は、WSL2 内でおこなう
Docker CE のインストール
gpg キーの追加
code:bash
リポジトリの追加
code:bash
echo \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker CE 等のインストール
code:bash
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
Docker CE の起動
docker グループに使用する(カレント)ユーザを追加
code:bash
sudo usermod -aG docker $USER
Docker の起動
code:bash
service docker status #起動確認 動作確認
code:bash
sudo docker run hello-world
自動起動させるため ~/.bashrc or ~/.bash_profile に下記を追記
code:bash
# Start Docker Service
sudo service docker start > /dev/null
fi
Docker サービスの起動を sudo なしで可能にするため、設定
sudo visudo を実行し下記を追記
code:conf
%docker ALL=(ALL) NOPASSWD: /usr/sbin/service docker start
PowerShell で、 wsl --shutdown し WSL2 を再起動した後に service docker status をして Docker が起動していることを確認出来れば OK
https://gyazo.com/dd2626378c25c98453924b7f72fb2a86
Docker Compose のインストール
Docker Desktop を使用していた方向けの事前準備
インストール先ディレクトリを確認すると、すでに docker-compose が存在しているように見える。
code:ls
❯ ls -l /usr/local/lib/docker/cli-plugins
lrwxrwxrwx 80 root 24 Dec 2021 docker-buildx -> /mnt/wsl/docker-desktop/cli-tools/usr/local/lib/docker/cli-plugins/docker-buildx
lrwxrwxrwx 81 root 24 Dec 2021 docker-compose -> /mnt/wsl/docker-desktop/cli-tools/usr/local/lib/docker/cli-plugins/docker-compose
lrwxrwxrwx 78 root 24 Dec 2021 docker-scan -> /mnt/wsl/docker-desktop/cli-tools/usr/local/lib/docker/cli-plugins/docker-scan
すごく雑だが、下記のようにして上記の symlink を削除した。
code:bash
sudo rm /usr/local/lib/docker/cli-plugins/*
インストール
ディレクトリがなければ、作成してから Docker Compose を配置。
code:bash
sudo mkdir -p /usr/local/lib/docker/cli-plugins
実行権限を付与。
code:bash
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
インストール完了確認
code:bash
❯ docker compose version
Docker Compose version v2.2.3
Tips
docker-compose up (docker compose up)したら、エラーが出た
これも、Docker Desktop の置土産。
code:bash
docker.credentials.errors.InitializationError: docker-credential-desktop.exe not installed or not available in PATH
rm ~/.docker/config.json で解決した。
最後に