今回は、 Docker Desktop を使わずに Windows で Docker 環境を構築してみました。
Windows10 または Windows11 で WSL2 をインストールして Docker を動かす方法を解説します。
どちらの OS も同じ手順でできます。
WSL2 と Ubuntu のインストール
WSL2 と Ubuntu をインストールしていきます。
WSL2 のインストール
PowerShell を管理者として起動し、下記のコマンドを実行します。
wsl --install
インストールが完了したら、画面の指示に従って再起動をします。
Ubuntu のユーザー設定
アップデート
アップデートを行います。
sudo apt update
sudo apt -y upgrade
sudo apt -y autoremove
Docker
Docker 環境の構築をしていきます。
古いバージョンのアンインストール
古いバージョンの Docker を事前にアンインストールしておきます。
sudo apt remove docker docker-engine docker.io containerd runc
上記のコマンド実行時にパッケージがどれもインストールされていないと表示されても問題ありません。
Docker Engine のインストール
今回は、 apt
リポジトリからインストールを行います。
パッケージのインストール
必要なパッケージをインストールします。
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-release
GPG キーの追加
Docker 公式の GPG キーを追加します。
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
リポジトリのセットアップ
リポジトリのセットアップを行います。
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
パッケージインデックスの更新
Docker Engine のインストール前にパッケージのインデックスを更新しておきます。
sudo apt update
Docker Engine のインストール
今回は最新版の Docker Engine をインストールします。
sudo apt install \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Docker のバージョン確認
Docker のバージョンを表示して、 Docker Engine のインストールが成功しているか確認します。
バージョンが表示されれば問題ありません。
docker -v
ユーザーを docker グループに追加
ユーザーを docker
グループに追加します。
sudo usermod -aG docker <ユーザー名>
Docker デーモンの起動
Docker デーモンを起動します。
sudo service docker start
補足
構築中に発生したトラブルや補足などを参考までに書き留めておきます。
Hyper-V が有効になっていない場合
Hyper-V が有効になっていない場合は、PowerShell を管理者として起動し、下記のコマンドを実行します。
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
インストールが完了したら、画面の指示に従って y
ボタンを押下し、再起動します。
Cannot connect to the Docker daemon at ... と表示される場合
Docker デーモンが起動していないと、 Docker コマンド実行時に下記のような表示が出ます。
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
下記のコマンドで Docker デーモンを起動します。
sudo service docker start
WSL2 のシャットダウン
PowerShell で下記のコマンドを実行することで、Ubuntu のシャットダウンができます。
wsl --shutdown
CPU やメモリの制限を行いたい場合
事前に WSL2 で起動しているすべての WSL2 ディストリビューションを停止しておきます。
wsl --shutdown
次にファイルエクスプローラーで %UserProfile%
を開き、 .wslconfig
ファイルを作成します。
.wslconfig
ファイルに各設定を記述します。
[wsl2]
processors=2
memory=4GB
設定項目が多岐にわたるため、詳細は下記を参照してください。
Rancher Desktop
Rancher Desktop を利用して、 Docker コンテナを動かす方法を別の記事で公開しました。
参考文献
下記のサイトを参考にさせて頂きました。