サイトアイコン 協栄情報ブログ

WSL2+Docker+VSCodeを使用した環境構築

こんにちは、西海です。
今回、ローカルのWindowsPCにWSL2,VSCodeをインストールし、そのWSL2上にDockerをインストールしてローカルのVSCodeからDockerを操作できる環境を構築したので、構築方法をまとめます。

背景

今回このような環境を構築した理由として、Cloud9を使わずにAWS公式ハンズオンを進めたいと思ったからです。

今年からECSの勉強を始めようと思い、AWS公式の下記ハンズオンを実施しようとしました。
Amazon Elastic Container Service 入門 コンテナイメージを作って動かしてみよう

ところが、このハンズオンではCloud9をメイン開発環境としています。
Cloud9は2024年7月に新規のユーザ利用が終了しており、終了前にCloud9を使用していなかったユーザおよびそれ以降でAWSアカウントを作成したユーザはCloud9を使用することができません。
幸いにも私の使用しているAWSアカウントでは既にCloud9を利用しておりハンズオンを進めるのに影響はなかったのですが、既にサービス終了したものを今後も使い続けるのもどうかと思い、代替手段を探していました。
その中で、タイトルの組み合わせでほぼCloud9と同じ開発環境を用意できると知り、勉強の一環として構築してみました。

なぜこの構成にしたのか

今回この組み合わせで環境構築したのには、次の理由からです。
・ローカルPCに直接コマンドやライブラリをインストールしたくない→Docker,WSL2
・Linuxコマンド勉強のために、Linuxベースの作業環境が欲しい(ローカルPCはWindows)→WLS2
・エディタを使用して直接開発環境にアクセスしたい→VSCode

WSL2は正式名称を"Windows Subsystem for Linux 2"といい、Windows上でLinux環境を動作させることのできる機能です。
デフォルト状態ではUbuntuがベースとなりますが、他のLinuxディストリビューションを選択して環境を構築することも可能です。

構築手順

以下の手順に従い環境を構築していきます。
また、今後の利用目的を考慮して、最後にAWS CLIをWSL2で構築したUbuntuにインストールします。

WSL2インストール

PowerShell または コマンドプロンプトを管理者権限で起動し、次のコマンドを実行します。
wsl --install

ディストリビューションが正常にインストールされました。と表示されればインストールは完了です。
※再起動を求められる場合がありますので、その場合は再起動します。

Ubuntuユーザ作成・パスワード設定

WSL2インストール時に表示された以下のコマンドを実行、もしくは検索からUbuntuを検索し起動します。

初回起動時にユーザ名とパスワードの設定が必要なので、それぞれの値を入力します。
パスワード入力時は入力した文字が見えないため、打ち間違いに注意してください。

WSL2のバージョン確認

コマンドプロンプトで次のコマンドを実行してインストールしたWSL2のバージョンが2となっていることと、デフォルトのディストリビューションがUbuntuであることを確認します。
wsl -l -v

上記のように左側に*がついているUbuntuのVERSIONが2であれば問題ありません。

Ubuntuのパッケージの更新とアップグレード

起動したUbuntuのBashから次のコマンドを実行します。
sudo apt update && sudo apt upgrade

Visual Studio Code にRemote Development 拡張機能パックを導入・WSL2へ接続

次のサイトからVSCodeのインストーラーをダウンロードし、インストールします。
Download Visual Studio Code

インストール完了後、VSCodeを起動して左側の拡張機能ボタンをクリックし、検索欄に”Remote Development”と入力します。
拡張パックが表示されたらInstallボタンを押してインストールします。

インストール後に左下に画像のようなボタンが追加されればインストール完了です。

ボタンを押すと、VScodeの上部に画像のような一覧が表示されます。
WSLへの接続を選択すると、VSCodeからWSLのUbuntu環境へアクセスすることができます。

上記のようにボタンの箇所にWSL:●●と表示がでればLinux環境へアクセスが成功しています。

Dockerの導入

次の各コマンドをUbuntu環境で実行しDockerをインストールします。
※このコマンドはUbuntu環境にDockerをインストールする場合のコマンドです。
他のディストリビューションにDockerをインストールするコマンドはDocker公式ドキュメントから確認してください。
・Dockeraptリポジトリを設定

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

・Docker パッケージをインストール
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

インストール完了後、hello-worldイメージを実行してインストールが成功したことを確認します
sudo docker run hello-world

上記のように結果が出力されればDockerのインストールは完了です。

ユーザをdockerグループへ追加(dockerコマンドでsudoを不要にする)

Dockerコマンド実行時、毎回sudoをつけるのが手間と感じる場合は、こちらの手順を実施してsudoを不要にします。
Dockerインストール時にdockerグループが作成されているはずですが、もし存在しない場合はUbuntu上で次のコマンドでグループを作成します。
sudo groupadd docker

次のコマンドを実行して、WSL2インストール時に作成したUbuntuユーザをDockerグループに所属させます
sudo usermod -aG docker $USER ※$USER:WSL2インスト―ル時に作成したUbuntuユーザ名

今度はsudoを付けずにhello-worldイメージを実行して動作を確認します。

先ほどと同じ結果が表示されれば設定完了です。

aws cliをインストール

次のコマンドを実行して、aws cliをUbuntuにインストールします。
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install

インストール完了後、次のコマンドを実行して正常にインストールされている確認します。
aws --version aws-cli/2.19.1 Python/3.11.6 Linux/5.10.205-195.807.amzn2.x86_64 botocore/2.4.5

上記のように表示されていれば大丈夫です。
この後、自分が使用する認証方法にあった方法で、aws cliの設定を実施します。
例)aws configure

詳しくはこちらの公式ページを参照してください。
AWS CLI の設定

まとめ

以上で、ローカルPC上にCloud9の代替環境を構築できました。
1つ1つの行程はあまり難しくなかったため、環境構築に不慣れな私でも2時間ほどで構築することができました。
今後はこちらの環境をメインとして、ECSなどの勉強をしていきます。
勉強した内容についても、今後Blogに投稿するのでよろしければご覧ください。
各手順のコマンドなどは以下の各公式ページを参照したので、もしエラーが出た場合はそちらを参照してください。

WSL を使用して Windows に Linux をインストールする方法

WSL の基本的なコマンド

WSL 開発環境を設定する

Linux 用 Windows サブシステムで Visual Studio Code の使用を開始する

UbuntuにDockerエンジンをインストールする

モバイルバージョンを終了