LoginSignup
4

More than 1 year has passed since last update.

Dockerのインストール手順【WSL2】【Ubuntu 20.04 LTS】

Last updated at Posted at 2022-09-02

この記事はWSL2を使ったDockerのインストール方法を記載しています。
Docker初学者向けの内容であり、自分もかなり苦労したので、備忘録として残します。

注意事項

  • この情報は2022年9月2日時点のものです。
  • 以下の内容には誤りが含まれる可能性があります。
    • 間違っている部分などがあれば、コメントお願いします。

今回インストールした環境

項目 バージョン
OS Windows 11 Home
Docker 20.10.17
Linux Ubuntu(20.04.4 LTS)

事前準備

WSL2のインストール(既にインストール済みの方は不要)

Windows Homeを使用している方はHyper-V機能が搭載されていませんが、有効化しなくても問題ありません。
どうしても、Hyper-Vを使用したい方はこちらの記事を参考にしてください。

Ubuntuをインストール(すでにインストール済みの方は不要)

  • PowerShellを起動して以下のコマンドを実行します。
wsl --install -d ubuntu
  • Ubuntuが起動したらOKです。任意のユーザ名とパスワードを設定してください。

Ubuntuダウンロード.png

Dockerのインストール

こちらの記事を参考にしています。(Dockerインストール時に大変お世話になりました。)
以降の操作はすべてUbuntuターミナルで実施します。

1. Ubuntuのリポジトリをセットアップする

  • aptパッケージインデックスを更新1し、aptがHTTPS上のリポジトリを使用できるようにパッケージをインストールします。2
$sudo apt update

$sudo apt install -y apt-transport-https

コマンド実行途中で「Do you want to continue?(Y/N?)」と聞かれるので、yと入力してください。

2. Dockerの公式GPGキーを追加する3

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

3. リポジトリを設定する

$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

4. Docker Engineをインストールする4

$sudo apt update

$sudo apt install docker-ce 

5. dockerのデーモンを起動する

通常のLinuxだと、上記の手順でdockerデーモンは自動的に起動しますが、
WSL2では、Systemdが無効化されています。
以下のコマンドを実行し、Dockerデーモンを手動で起動します。

$sudo /etc/init.d/docker start

それでもPID1が起動しない場合

上記操作を行っても「System has not been booted with systemd as init system (PID 1)」が出る場合は、
こちらの記事を参照してください。(私も以前、ここでハマっていましたが、この記事で解決しました。)

① unshareコマンドで簡易コンテナを作る

$sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target 

② nsenterコマンドで簡易コンテナの中に入る

$exec sudo nsenter --target $(pidof systemd) --all su - $LOGNAME

再度デーモン起動 もしくは、hello-worldイメージを実行して起動できればOKです。

6. Dockerのインストール確認

  • hello-worldイメージを実行し、インストールが正常におこなわれているか確認
$sudo docker run hello-world

以下のような画面が出れば、インストール成功です。

docker_helloworld.png

7. Dockerをユーザ設定で使用できるようにする

Dockerコマンドを使用する時に、「毎回"sudo"って書くの手間がかかるから、省きたいな~」という方は、以下のコマンドして、一般ユーザ(上記で登録したユーザ)をdockerグループに所属させてください。

$sudo usermod -aG docker $USERNAME(自身で設定したもの)

【番外】JenkinsをDocker内で起動してみる

Dockerを使って、Jenkinsを起動します。

$sudo mkdir /var/jenkins_home

$sudo chown 1000:1000 /var/jenkins_home

$sudo docker run -p 8080:8080 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

コマンド実行後、http:localhost:8080/にアクセスし、以下のJenkins画面が表示されればOKです。

jenkins画面.png

最後に

今回はwsl2を使ったDockerインストール方法を記載しました。
wsl2を用いると所々ハマるポイントがあるなという印象を持ったので、wsl2についての勉強もしていきたいと思います。

参考資料

  • WSL2のインストールと更新方法

  • Install Docker Engine on Ubuntu

  • WSL2でSystemdを使うハック

  • WSL2 Ubuntu に Docker 導入(Docker Desktop for Windows に変えて)

  • apt-keyはなぜ廃止予定となったのか

  1. Dockerの公式ページでは、apt-getを用いているが、非推奨となっているため、aptを使用

  2. Dockerの公式ページには、ca-certificates、curl、gnupg、lsb-releaseもインストールする必要がありますが、Ubuntu-20.04ですでに導入済みのため、不要です。

  3. Dockerインストール手順が記載されている記事や書籍の中には、apt-keyやadd-apt-repositoryを使う記事もありますが、apt-key非推奨であり、2022年中ごろで削除予定のため、注意が必要

  4. Dockerの公式ページには、docker-ce-cliとcontainerd.ioも記載されているが、この2つはdocker-ceに依存しているため、記載不要

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4