WSL2にDockerを入れてVScode上で作業する

公開:2020/09/30
更新:2020/10/19
3 min読了の目安(約2800字TECH技術記事

やってみたので備忘録にメモ

環境

手順

WSL2にdockerをインストール

  • 公式手順を参考に以下を実行していく

    $ sudo apt update -y && sudo apt upgrade -y
    $ sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    $ sudo apt install -y docker-ce
    $ sudo service docker start
    $ sudo docker -v
    Docker version 19.03.13, build 4484c46d9d
    
  • 動作確認

    $ sudo docker run hello-world
    $ sudo docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    hello-world         latest              bf756fb1ae65        9 months ago        13.3kB
    
  • 作業ユーザ(WSL2実行ユーザ)をdockerグループに追加しておく

    $ sudo usermod -aG docker <your-user>
    

VScode上でWSL,コンテナ環境の作業

  • VScodeを起動し、拡張機能からRemote Develpmentをインストールする
  • VScodeを再起動すると、左タブにRemote Explorerのアイコンが追加される
  • Remote Explorerのアイコンを選択し、WSL Targetsを選択する
  • dockerをインストールしたWSL2を選択(Conncect to WSL)する
  • VScodeのwindowが更新され、WSL2上で作業可能になる
    • windowの左下にWSL: Ubuntu等が表示される
    • Ctrl + Shift + @でターミナルが開く
    • 左タブのOpen Explorer > Open Folder でWSL2上の作業ディレクトリを選択できる
  • 適当なディレクトリを作成し、Dockerfileを作成する
    • 今回はpythonの実行環境を作るというていで以下を記述
    • python:alpine3.12公式DockerHub上のイメージ名:tag名
    FROM python:alpine3.12
    
  • 再度、Remote Explorerのアイコンを選択する
  • Containers > Open Folder in Containerを選択する
    • ここで、作業ユーザ(WSL2実行ユーザ)をdockerグループに追加していないと、permissionエラーが起こるので注意
  • Dockerfileを作成したディレクトリ選択し、 ok > From 'Dockerfile' を選択
  • (Dockerfileからコンテナが起動し、)VScodeのwindowが更新され、Dockerコンテナ上での作業が可能になる
    • windowの左下にDev Container: Existing Dockerfileが表示される
    • windowを閉じるとコンテナもstopする
    • ターミナルで環境を確認してみる
    # cat /etc/issue
    Welcome to Alpine Linux 3.12
    Kernel \r on an \m (\l)
    # python --version
    Python 3.8.6