🐋

WSL(Ubuntu)にDocker環境を構築する

2023/07/29に公開4

はじめに

WSLにDockerの環境を導入するのはDocker for Windowsでええじゃないかというお声もあるのですが、有料契約を余儀なくされた時のために自力でDocker環境を構築できるようにするための備忘録です。(ほぼ公式見たらできますが…)

WSLのインストール

以下のサイトを参考にインストールしておきます。
https://learn.microsoft.com/ja-jp/windows/wsl/install#install-wsl-command
今はwsl --installだけでインストールされるんですね…
昔はWSLを動かすためにいろいろ入れていたのが懐かしい…

Dockerインストール

WSLのインストールが完了したら、まずは本題のDockerをインストールしていきます。
Docker公式に詳しく書かれているので、そちらを参考にコマンドを入力します。
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

まずは、パッケージの情報やインストールされているパッケージが古かったりするかもしれないので以下のコマンドで最新化します。

sudo apt-get update
sudo apt-get upgrade -y

続いて、Dockerをインストールするために必要なパッケージをインストールしていきます。

sudo apt-get install ca-certificates curl gnupg

Docker公式のGPGキーを登録していきます。

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

Docker公式のGPGキーを使って、aptが参照するリポジトリを追加します。

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

追加したリポジトリの情報を取得するために、再度aptのアップデートを行いdockerをインストールします。
docker-composeもdocker-compose-pluginをインストールするだけで使えるようになったんですね…

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

インストールが完了したら、ログインユーザーでDockerが動かせるようにdockerグループへ追加します。グループに追加した後は一度ログインしなおすこと。

sudo usermod -aG docker $USER

最後にDockerが正しく動作するか確認します。

sudo docker run hello-world

ばっちり動いていますね。

さいごに

久しぶりにDockerの環境を一から用意するといった作業を行いましたが、かなり楽になっていた印象でした。キャッチアップは欠かさず行っていこうと改めて思った1日でした。
自身がWSLをセットアップするときに使っているバッチはGitHubに保管しています。古い導入手順ですが、参考になれば幸いです。
https://github.com/tHyt-lab/wsl-init

Discussion

nakamotonakamoto

とても楽になったんですね。
助かりました。
1点だけ、私の環境だけかもしれませんが、

sudo docker run hello-world

するまでの何処かで、Docker Desktopを起動しておく操作が必要でした。

tHyt-labtHyt-lab

nakamoto さん
コメントありがとうございます!

WSLやdocker-composeのインストールがこんなに簡単になっていたのは本当に驚きでした。

Docker Desktopを起動しておく操作が必要でした。

貴重なご意見ありがとうございます。
差し支えなければどの操作をする時に、DockerDesktopの起動が必要になったか教えていただけると幸いです!
お忙しいところ大変恐縮ですが、よろしくお願いいたします。

nakamotonakamoto

sudo docker run hello-world しようとしたらうまく行かなかったので、 Docker Desktop をWindowsメニューから起動して、 sudo docker run hello-world したら動きました。

tHyt-labtHyt-lab

情報提供ありがとうございます!
DockerDesktop(Windows側のデーモン)に頼らない構成を作ったつもりでしたが、執筆時裏で動いていたかもしれません。
原因分かりましたら記事を更新します。