Docker Desktop for Windows はもうイヤ
Docker Desktop for Windows ですが、ライセンスがややこしくなって速度も遅くなった気がして、嫌気がしてきました。アメリカ企業の悪い習慣でもありますが、シェアを捕るとすぐにサブスクにしてしまいます。(Adobeもそうですね。アコギに名前変えた方が良いです)
そこで、Windows WSL上にDockerをインストールして使いましょうという記事です。
WSLのDockerは今のところ無料で利用できます。
WSL(Windows Subsystem for Linux)
Windows上でLinux環境を実行できる機能です。Windows 10から標準で使えるようになっていて、無料で使えます。
最新のWSL2はDockerに対応しているので、今回はこのWSL2を使います。
Windows Terminalのインストール
WSLを使う場合GUIは使えないので、ターミナル(コマンドプロンプトに相当)をインストールした方が便利に使えます。まずはWindows Terminalをインストールします。
Microsoft StoreでWindows Terminalで検索すればすぐに見つかるので、インストールしておいてください。
WSL2のインストール
ここにwt
と入力してWindows Terminalを起動しますが、この時「管理者として実行」をクリックして管理者で実行してください。
PowerShellを起動してください。
PowerShell上で以下のコマンドを実行します。
# Hyper-Vを有効にする
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
# Linux 用 Windows サブシステムを有効にする
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
# 仮想マシンプラットフォームを有効にする
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
# WSLを最新にする
wsl --update
もしwsl --update
でエラーになったらWSLがインストールされていないので、以下のサイトからダウンロードしてインストールしてください。
WSL2ダウンロードサイト
ページが表示できたら、Assetsを開いてダウンロードします
Windows版ならwsl.2.6.1.0.x64.msiです。
WSLのインストールに関わらず、この時点でWindowsを再起動します。
起動してきたら、Windows Terminalを起動して、Power Shellで以下のコマンドを実行してWSLを起動します。
wsl -l
この表示の場合はwslに何もディストリビューションが無いので、Ubuntu
をインストールします。念のため、アプリと機能でUbuntu
がインストールされていないか確認して、インストール済みならアンインストールしておいてください。
Ubuntuのインストール
Microsoft Store でUbuntu
最新版をインストールします
起動すると、新規ユーザとしてのユーザ/パスワードを入力するように言われるので入力します。この時のユーザは、WSL上のユーザ名とパスワードなので、Windowsと合わせなくてもかまいません
WSL版Dockerをインストール
Ubuntu
がインストールされると、Windows Terminal のこの部分でUbuntu
が選択できるようになります。
以下、Ubuntu
ターミナルでの作業になります。以下のコマンドを実行します。
# Ubuntuを最新にする
sudo apt -y update
sudo apt upgrade -y
# ビルドツールをインストール
sudo apt install -y build-essential
# 日本語環境、タイムゾーンを設定
sudo dpkg-reconfigure tzdata
sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8
sudo apt -y install language-pack-ja
# Dockerインストーラーのダウンロード
curl -fsSL https://get.docker.com -o get-docker.sh
# インストーラー実行
sudo sh get-docker.sh
# Dockerの実行
sudo usermod -aG docker $USER
# docker-buildx ダウンロード
mkdir -p ~/.docker/cli-plugins/
cd ~/.docker/cli-plugins/
wget https://github.com/docker/buildx/releases/download/v0.28.0-rc2/buildx-v0.28.0-rc2.linux-amd64
mv buildx-v0.28.0-rc2.linux-amd64 docker-buildx
chmod +x docker-buildx
# docker-buildx インストール
./docker-buildx install
# インストール確認
docker --version
docker compose version
エディタを起動して、以下の内容のテキストファイルを作ります
sudo nano /etc/docker/daemon.json
以下をコピペします
{
"hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"]
}
エディタを閉じます。
サービス起動時にエラーとなるため、サービス設定を変更します。
sudo nano /lib/systemd/system/docker.service
既存の ExecStart をコメントアウトしてその下に以下の2行を追加します。
ExecStart=
ExecStart=/usr/bin/dockerd
エディタを閉じます。
Dockerを常駐するように変更して、Dockerサービスを起動します。
sudo systemctl enable docker
sudo systemctl start docker
今後、Dockerを再起動したいようなことがあれば、以下のコマンドで再起動できます。
sudo systemctl daemon-reload
sudo systemctl restart docker
以上でWSLへのDockerインストールは終了です。