WSL環境のUbuntuにDockerをインストールしたいと思います。
はじめに
この記事では、
「WSL2(Ubuntu-20.04)にDockerをインストールする方法」
を紹介します。
バージョン情報
Widows10
WSL2(Ubuntu-20.04_LTS)
WSL、Ubuntu-20.04のインストールを行っていない方は以下の記事を参考にしてください。
Dockerのリポジトリの更新
以下のステップで作業を行い、Dockerインストールのための準備を行います。
以下のコマンドを実行し、パッケージを更新します。
コマンド:「sudo apt update」
以下のコマンドを実行し、パッケージをインストールします。
コマンド:
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
以下のコマンドを実行し、Docker 公式の GPG 公開鍵をインストールします。
コマンド:「curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -」
以下のコマンドを実行して、Keyを確認します。
コマンド:「sudo apt-key fingerprint 0EBFCD88」
「9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88」であることを確認します。
以下のコマンドを実行し、repository (stable) を追加します。(x86_64 / amd64 アーキテクチャの場合)
コマンド:
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Dockerのインストール
最新版のDocker をインストールします。
以下のステップで作業を行い、Dockerをインストールします。
以下のコマンドを実行し、パッケージを更新します。
コマンド:「sudo apt update」
Dockerをインストールします。
以下のコマンド実行してインストールを行います。
コマンド:「sudo apt-get install docker-ce docker-ce-cli containerd.io」
WSL環境にwsl.confというファイルを作成し、以下を内容を書き込みます。
[boot]
systemd=true
書き込んだらWSL環境を再起動します。
PowerShellにて以下を実行します。
コマンド:「WSL --shutdown」
Docker を再起動します。
以下のコマンドを実行し、Dockerを再起動します。
コマンド:「sudo systemctl restart docker」
Docker 再起動時に以下のエラーが発生した場合は、以下のコマンドでWSLの更新を行ってください。
コマンド:「wsl --update」
エラー内容
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Dockerの動作確認
Dockerの動作確認を行います。
まずは、バージョンの確認をしてみましょう。
コマンド:「sudo docker -v」を実行します。
バージョンが「20.10.23」であることがわかります。
Hello world サンプルのdocerイメージを取得して実行します。
コマンド:「sudo docker run --rm hello-world」
確認できたらサンプルdocerイメージはもう必要ないので削除します。
コマンド:「sudo docker rmi hello-world」
上記のコマンドを実行してDockerイメージを削除します。
以上で、Dockerの動作確認が完了です。
補足
Ubuntuでdockerコマンドを実行する度に、コマンドの前にsudoを付けるのは面倒なので
dockerコマンドをsudoの付与無しに実行できるようにしたいと思います。
コマンド:「sudo gpasswd -a <ユーザID> docker」を実行します。
(<ユーザID>にはUbuntuのユーザIDを設定してください。)
まとめ
WSL2上のUbuntuにDockerをインストールしました。
また、動作確認としてDockerのバージョンし、Dockerイメージを取得して実行を行いました。
これでDockerが使えるようになったので、
今後Dockerを使ったものを紹介していく予定です。