WSL2にDockerをインストールする方法

はじめに


WSL2環境であれば、Docker Desktop for Windowsが使えますが、ここではWSL2のUbuntu内にDockerをインストールする手順を記載しています。

手順


ほぼこの通りにやれば構築できます。

# WSLのUbuntuに入る
wsl -d Ubuntu
# 前準備
apt-get update
apt-get remove docker docker-engine docker.io containerd runc
apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
# Dockerのリポジトリを追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
# Dockerインストール
apt-get install docker-ce docker-ce-cli containerd.io
# Docker起動
service docker start
# 動作確認
docker run hello-world

参考


Install Docker Engine on Ubuntu

DockerのコンテナをエクスポートしてWSLにインポートする方法

はじめに


Dockerコンテナのエクスポート形式がtarなので、WSLにインポートできるかもしれないと思いやってみたらできました。

手順

Dockerのコンテナをエクスポート

>docker ps -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED        STATUS                      PORTS                NAMES
9ef4d9e087db   getting-started          "docker-entrypoint.s…"   4 hours ago    Exited (0) 2 minutes ago                         pensive_feynman

> docker export pensive_feynman > "C:\apps\wsl\export\nginx01.tar"

WSLにインポート

>wsl --import nginx01 "C:\apps\wsl\nginx01" "C:\apps\wsl\export\nginx01.tar"
>wsl -l -v
  NAME                   STATE           VERSION
  nginx01                 Stopped         2

インポートしたWSLを起動

wsl -d nginx01 -- nginx -g "daemon off;"

nginxの起動方法はDockerのInspectで確認しました。