ari23の研究ノート

メーカ勤務エンジニアの技術ブログです

WSL2のDockerインストール方法

私用PCにDockerをインストールするついでに、手順を整理します🐜

開発環境

開発環境は以下の通りです。

項目 内容
OS Windows 10 Home 64bit
Version 21H2
WSL WSL2 Ubuntu 20.04.4 LTS

Dockerとは

Dockerとはコンテナ型仮想化の技術により、OSごと実行環境を管理できるアプリケーションです。 1

色々利点はあるのですが、私が気に入ってるのは以下の点です。 2

  • 環境移行が簡単
    重たい計算をするときは専用のワークステーションを使うのですが、Dockerによって、普段の開発環境と全く同じ環境がワークステーションに作れるようになりました。
  • ホスト環境を汚さない
    案件によって必要なライブラリが変わるので、どうしても開発環境がごちゃまぜになりがちですが、Dockerによって、案件ごとに開発環境を整理できるようになりました。

「DockerはWeb屋さんが使うツールで、サーバとかの知識が必要」と思っていたのですが、データ分析屋の私でも使えるようになったので、上記に挙げた点が気になる方にはおすすめです。3

インストール手順

本稿では、WSL2 Ubuntuで動かすことを前提とします。WSL2のインストール方法については、こちらを参照してください。

まず、WSL2 Ubuntuを起動します。

起動後に、もし既存のDockerがあれば、以下のコマンドを叩きます。(初めての場合はスキップしてよい)

sudo apt remove docker-ce docker-ce-cli containerd.io docker-compose

また、もし古いバージョンのDockerがあれば、以下のコマンドを叩きます。(初めての場合はスキップしてよい)

sudo apt remove docker docker-engine docker.io containerd runc

インストール前に、aptをupdateとupgradeしておきます。Ubuntuなので、推奨されているaptを使います。

sudo apt update
sudo apt upgrade

必要なパッケージをインストールします。upgradeしておけばおそらく不要ですが、念のため叩いておきます。

sudo apt install ca-certificates curl gnupg lsb-release

必要なパッケージをインストール
必要なパッケージをインストール

Dockerエンジンをインストールするには、Docker公式のGPG鍵とDockerリポジトリが必要です。

まず、GPG鍵を入手するため、以下のコマンドを叩きます。なお、実行した後は、何も出力されません。不安であれば、docker-archive-keyring.gpgが生成されたことを確認してください。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

公式ページを見ると、以下のコマンドに変更となりました。(2023年03月13日時点)

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

旧コマンドによるGPG鍵入手(参考)
旧コマンドによるGPG鍵入手(参考)

GPG鍵を使って、Docker公式安定版のリポジトリを追加します。こちらも実行しても、何も出力されません。

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

公式ページを見ると、以下のコマンドに変更となりました。(2023年03月13日時点)

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

追加したリポジトリをaptアップデートで更新します。

sudo apt update

リポジトリ更新
リポジトリ更新

そして、Dockerエンジンをインストールします。

sudo apt install docker-ce docker-ce-cli containerd.io

公式ページを見ると、以下のコマンド(docker compose 付き)に変更となりました。(2023年03月13日時点)

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

旧コマンドによるDcokerエンジンインストール(参考)
D旧コマンドによるDcokerエンジンインストール(参考)

次にDockerデーモンを動かします。なお、WSLではsystemctlがうまく動かないので、serviseを使います。

まず、以下のコマンドを叩き、Dockerデーモンの項目があることを確認します。

service --status-all

ステータス確認|Dockerデーモン起動してない
ステータス確認|Dockerデーモン起動してない

Dockerデーモンを起動します。

sudo service docker start

再度、以下のコマンドを叩き、Dockerデーモンが起動したことを確認します。

service --status-all

ステータス確認|Dockerデーモン起動している
ステータス確認|Dockerデーモン起動している

こちらのコマンドを叩いて、それではDockerでHello Worldをしてみましょう。以下のような画像が出力されれば成功です。

sudo docker run hello-world

DockerのHello World画面
DockerのHello World画面

おわりに

WSL2 Ubuntuで使うDockerのインストール手順について、まとめました。

実は、参考にしていたWebページがなくなってしまったので、自分で書くことにしました。

参考になれば幸いです(^^)

参考文献


  1. 「Dockerはバーチャル上で使える、新しいパソコンを無料で貰えるようなものです」は、言い過ぎかと思いますw
  2. 詳細は参考文献やもっと詳しい人に聞いて下さい。Webの技術に疎くてごめんなさい。
  3. ただし、私は「使いこなす」までには至ってません