🔖

WSL2のubuntu20.04にdockerのLINUX版をインストールする(Docker for Windowsは使わない)

2021/05/11に公開

はじめに

WSL2 ubuntu 20.04の環境でdockerを使えるようにしたいのですが「Docker for Windows」を使いたくない・・・という個人的なわがままのため「WSL2 ubuntu20.04」に「docker LINUX版」を用意してみました。結果として今のところ不便なく使えているという印象です。

「Docker for Windows」の方が「vs_code(Visual Studio Code)」のアドオンから利用できて便利・・・という事は多分にありそうですが、まだ実機のLinuxの方が慣れているのでLINUX版のDockerをWSL2で使いかった次第です。

構築する環境について

事前準備として WSL2 ubuntu 20.04 を用意しています。
※curlもインストール済み

  • Windows10 pro
  • WSL2 ubuntu 20.04
  • Docker version 20.10.6
  • docker-compose version 1.28.6

Dockerインストール

docker公式 GPG公開鍵 インストール

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

aptのリポジトリにDockerのリポジトリを追加する

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

docker-ce (Community Edition) インストール

sudo apt update
sudo apt install -y docker-ce

dockerサービス起動

sudo service docker start

バージョン確認

docker version
--
Docker version 20.10.6, build 370c289

★ここでWSL2のスタートアップ起動ができない問題への対策

WSL2 ubuntu 20.04 の場合、スタートアップ起動ができないためdockerのserviceがスタートされないという問題があります。いちいち「sudo service docker start」を手打ちするのが面倒のため回避策をしておきたいと思います。

WSL2は起動時に「/sbin/mount -a」コマンドが呼び出される。「mount -a」コマンドによって/etc/fstab内のエントリがすべてマウントされる・・・なのでマウントの流れにスクリプトを忍ばせる。というのがベターなのかもしれないのですが、Windows10のスタートメニューからubuntuの起動時にrootのログインしたターミナルとなるので安易に.bashrcに追記して実行させる方法で回避します。

下記に記事ありますので参照いただければと思います。
https://zenn.dev/o2z/articles/f68d7aea7c075f#注意事項

vi /root/.bashrc
--
# docker
serv_status=$(service docker status > /dev/null 2>&1; echo $?)
if [ ! $serv_status == "0" ]; then
  service docker start
fi

docker-compose導入

「docker」を入れてるのに「docker-compose」を使わない訳がないくらい今は必須です。
記事時点(2021.5.11)のstable(安定版)は「1.28.6」でした。それなりにバージョンアップされますので、バージョンは最新に切り替えてインストールすると良いと思います。

docker-compose インストール+実行権限付与

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

docker-composeのバージョン確認

docker-compose --version
--
docker-compose version 1.28.6, build 5db8d86f

最後に

WSL2+ubuntu20.04+Dockerの環境で、別のトラブルが発生してくる可能性もありますが(WSL2はcgroupsなどリソース管理関連を行うのに向いてないそうです)WSL2はあくまで開発環境としての利用として使っていけたらと思います。

以上で「WSL2のubuntu20.04にdockerのLINUX版をインストールする(Docker for Windowsは使わない)」の記事としたいと思います。

GitHubで編集を提案

Discussion