2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows WSL版Dockerをインストール

Posted at

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で検索すればすぐに見つかるので、インストールしておいてください。
image.png

WSL2のインストール

image.png
ここにwtと入力してWindows Terminalを起動しますが、この時「管理者として実行」をクリックして管理者で実行してください。
image.png
PowerShellを起動してください。
image.png
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

image.png
この表示の場合はwslに何もディストリビューションが無いので、Ubuntuをインストールします。念のため、アプリと機能でUbuntuがインストールされていないか確認して、インストール済みならアンインストールしておいてください。

Ubuntuのインストール

Microsoft Store でUbuntu最新版をインストールします
image.png
起動すると、新規ユーザとしてのユーザ/パスワードを入力するように言われるので入力します。この時のユーザは、WSL上のユーザ名とパスワードなので、Windowsと合わせなくてもかまいません
image.png

WSL版Dockerをインストール

Ubuntuがインストールされると、Windows Terminal のこの部分でUbuntuが選択できるようになります。
image.png
以下、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

image.png
既存の 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インストールは終了です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?