
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
