WSL2上のUbuntuでdocker/docker-composeを利用する


はじめに

Windows環境でDockerを動かすためにDocker for Windowsの概要と導入を実施しましたが、PowerShell自体にどうも慣れません...。WSL2のUbuntu上で操作できたほうが色々楽です。今回はWSL2のUbuntu上でdockerをインストールして動かしてみます。

ちなみにDocker Desktop WSL 2 backend | Docker DocumentationのようにWindowsのDocker DesktopのバックエンドをWSL2にするものではなく、あくまでWSL2のUbuntuにdockerを入れるだけです。

環境

  • OS: Windows10 Pro 64bit
    • Version: 1909
    • OS build: 18363.1256
  • WLS2
    • Ubuntu 20.04

dockerインストール

Ubuntuにdockerインストールするのと同じなので、下記の公式ドキュメントを利用します。
参照:Install Docker Engine on Ubuntu | Docker Documentation

WSL2コマンドライン
# 古いバージョンのパッケージの削除
$ sudo apt-get remove docker docker-engine docker.io containerd runc

# aptパッケージの更新と、aptリポジトリを登録するために必要なパッケージのインストール
$ sudo apt-get update
$ sudo apt-get 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 -

# 先程登録したGPGキーが正当なものであるかをfingerprintからチェック
$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

# リポジトリの追加
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

# aptパッケージの更新と、dockerのインストール
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

# インストールできているか確認
$ docker --version
Docker version 20.10.1, build 831ebea

# サービスの状態を確認
$ service docker status
 * Docker is not running

# not runnningの場合はスタートさせる
$ sudo service docker start

$ service docker status
 * Docker is running

# テスト
$ sudo docker run hello-world

インストール後、sudoなしでdockerコマンドを実行できるように設定します。
参考:Post-installation steps for Linux | Docker Documentation

WSL2コマンドライン
$ sudo groupadd docker

$ sudo usermod -aG docker $USER

$ newgrp docker

# sudo なしでdockerコマンドを起動できるかチェック
$ docker run hello-world

docker-composeのインストール

更にdocker-composeもインストールします。
参照:Install Docker Compose | Docker Documentation

WSL2コマンドライン
# curlを利用して安定版をダウンロード
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 実行権限を付与
$ sudo chmod +x /usr/local/bin/docker-compose

# シンボリックリンクの作成
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# テスト
$ docker-compose --version
docker-compose version 1.27.4, build 40524192

最後に

VM上でDockerってパフォーマンス的にどうなのかな...とは思いつつ慣れたLinuxのコマンドラインでDocker環境を構築できるのはやっぱり良いですね。
一通りインストールできたので次はRailsでも動かしてみます。