本記事で達成すること
- windows(WSL2)環境の構築
- Dockerのインストール
- docker-composeインストール

そもそもWSL2とはなんですか?

今回構築する環境
- wsl2(Ubuntu20.0.4)
- Docker 20.10.1
- docker-compose 1.27.4
WSL2のインストール
Powershellの起動

WSLを有効化
PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
ここまで終わったら一度PC再起動してください
WSL(Ubuntu20.04)をMicrosoft Storeでインストール

WSL2への更新作業
PS C:\Windows\system32> wsl --list --verbose NAME STATE VERSION * Ubuntu-20.04 Running 1
PS C:\Windows\system32> wsl --set-default-version 2
PS C:\Windows\system32> wsl --set-version Ubuntu-20.04 2
PS C:\Windows\system32> wsl --list --verbose NAME STATE VERSION * Ubuntu-20.04 Stopped 2
WSL2の構築完了!!
Dockerのインストール
WSL2でDockerを導入する
まずはUbuntuを起動します。
windowsキーを押して「Ubuntu」と入れると候補に出てくるのでそれをクリックしてターミナルを起動します。
下記のdockerインストールコマンドを実行します。
$ curl https://get.docker.com | sh
sudo(管理者権限のこと)なしでdockerを使用できるようにします。
$ sudo usermod -aG docker user
バージョンを確認して下記のように表示されたら成功です。バージョンは最新版がインストールされるはずですので変わるかもしれません。
$ docker --version Docker version 20.10.1, build 831ebea
Dockerを起動コマンドと常時起動コマンドを実行します。
$ sudo systemctl start docker $ sudo systemctl enable docker
※下記のエラーが出た場合、、
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
下記コマンドを実行してください。その後、再度Docker起動コマンドと常時起動コマンドを実行してください。
$ curl -s https://packagecloud.io/install/repositories/arkane-systems/wsl-translinux/script.deb.sh | sudo bash $ sudo apt install -y systemd-genie $ genie -s
※手順が変わったようなので修正しています
$ sudo apt install apt-transport-https $ sudo wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg
viコマンドで「/etc/apt/sources.list.d/wsl-transdebian.list」ファイルを新規作成して下記2行を追加する。
$ sudo vi /etc/apt/sources.list.d/wsl-transdebian.list
# wsl-transdebian.listに下記2行を追加
deb https://arkane-systems.github.io/wsl-transdebian/apt/ focal main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ focal main
genieをインストール
$ sudo apt update
$ sudo apt install systemd-genie
WSLを再起動してgenie -sが実行できたらOKです。「ユーザー名@ホスト名-wsl」と表示されるようになります。
$ genie -s
WSL2でdocker-composeの導入をする
下記のdocker-composeのインストールコマンドを実行します。1.27.4の部分を任意のバージョンに変更することも可能です。現在の最新版を設定しています。
$ 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
次に、下記コマンドでdocker-composeコマンドに実行権限の付与をします。
$ sudo chmod +x /usr/local/bin/docker-compose
バージョンが確認できたら成功です!
$ docker-compose --version docker-compose version 1.27.4, build 40524192
VScode 「Remote WSL」
ここからはおまけですが、VScodeのプラグインである「Remote WSL」がすごく便利ですのでそれも紹介します。VScodeをインストールしていない方はこちらからインストールしてください。
VScodeのサイドバーの「プラグイン(拡張機能)」でインストールできます。
「Remote WSL」で検索をするとヒットすると思いますのでインストールしましょう。
インストールすると左下に緑色の「><」みたいなアイコンが表示されます。
これをクリックすると中央上にダイアログが表示されます。それの「Remote-WSL:New Window」をクリックしてください。そうすると新しい画面が立ち上がり、左下の緑部分が「WSL:Ubuntu20.04」と表示されるようになります。そのままだとフォルダが選択されていないため左側にある「フォルダを選択」をクリックして参照したいフォルダのパスを指定すればフォルダ単位で開くことも可能です。
このプラグインのメリットはこんな感じです。
- WSL上のファイルを参照しやすい
- ターミナルをWSL用に自動でしてくれる
- 開発をVScodeで完結できる
コメント