Engineering 環境構築

WSLにDockerをインストールする方法

WindowsでDockerを使う場合、Docker Desktopを利用することが考えられますが、現状Docker Desktopの使用は、ある条件下において有償化されています。そこでWIndowsでDockerを無償利用できるようにするために、WSLを使ってDockerをインストールしてみたいと思います。

WSLをインストールする

まずはWSLをインストールする必要があります。以下の記事で解説していますので、詳細はそちらを参照してください。

DockerはWSL2でないと動作が難しくなりますので、このタイミングでWSL2を必ず入れることをお勧めします。今はデフォルトでWSL2がインストールされると思いますので、上記手順の通りにやれば問題ないとは思いますが、今WSL1を入れている方がいれば、WSL2にバージョンを上げておくことをお勧めします。

WSL2かどうかのバージョン確認と、変更は以下のコマンドでできます。

# check version
wsl --version

WSL バージョン: 2.3.24.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.65
MSRDC バージョン: 1.2.5620
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.22631.4317
# set version2
wsl --set-default-version 2

WSLにDockerをインストールする

それではさっそくDockerをインストールしていきます。基本は公式Docsに書いてありますので、その手順に則って実施します。

公式ドキュメント:https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

1. PackageのUpdate

まずパッケージ情報などが古い可能性があるので、sudo apt update && sudo apt upgradeしておきましょう。

sudo apt update && sudo apt upgrade

2. 必要なライブラリや公開鍵をインストール

次にDockerのインストールに必要なライブラリをインストールします。

sudo apt-get install ca-certificates curl gnupg

次にGPGキーを登録します。これは、オープンソースなどが公開している公開鍵のことで、この公開鍵を用いて復号などを行うことで、インストールが正しく行われているかなどの検証が行われます。

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

3. インストール先のリポジトリの登録

その後、上記公開鍵を利用して、Dockerのリポジトリをaptの参照先として登録します。これをすることでインストール先が正しくなり、インストールを行えるようになります。

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

インストール

実際にDockerをインストールしていきます。

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

ちょっと待てばインストールが完了するので、Hello worldしてみましょう。以下のような表示が出ればInstallができていると思います。

sudo docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:d211f485f2dd1dee407a80973c8f129f00d54604d2c90732e8e320e5038a0348
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

まとめ

今回はWSLにDockerをインストールするということを行いました。今やアプリケーションの実行環境として、Dockerはデファクトスタンダードになっていると思いますし、WSLと組み合わせれば現状は無料で使用可能になりますので、ぜひインストールをしてみてください!

追記:sudo 実行

Dockerをインストールした後は、sudoユーザでないと実行できない状態になっているので、以下のコマンドでdockerコマンドをログインしているユーザが動かせるようにしておくと便利です。

sudo usermod -aG docker $USER

-Engineering, 環境構築
-, , , ,