Windows11でDockerやDocker composeを使いたいけど、わざわざDocker for Desktopを使わずなんとかしたい!と思った人向けの記事です
WSL2とはWindows Subsystem for Linux WindowsにLinux環境を構築するツール
Windows上にLinux環境を作りたいと思ったことはありませんか?わざわざ仮想環境を作って実行するのめんどくさいですよね。Windows 11のパワーシェルでLinuxコマンドを実行したいそんな事ができるようになります
WSLは主に以下のような用途で使用されます
- Linux専用のコマンドラインツール、ユーティリティ、アプリケーションをWindows上で実行する
- WindowsとLinuxの間でファイルを編集する
- WindowsとLinuxの間でコードを開発し、ビルドする
- Linuxのテスト環境をWindows上で実行する
- Docker、Python、Node.jsなどのクロスプラットフォームツールを使用する
WSLは2つのバージョン、WSL 1とWSL 2があります。WSL 2は新しいバージョンで、実際のLinuxカーネルを使用しており、ファイルシステムのパフォーマンスが大幅に向上しています。また、Docker Desktop for WindowsではWSL 2をバックエンドとして使用することが推奨されています。
Windows Subsystem for Linux (WSL2) をインストールする手順
PowerShellを管理者権限で開きます。windowsのマークの上で右クリックしてターミナル(管理者)を選択
変更を加えるの画面が出たらOKですすむ
PowerShellが起動したら"Linux 用 Windows サブシステム" と "仮想マシンプラットフォーム" というWindowsの機能を有効にするために以下のコマンドを実行する
以下をそれぞれ1つずつ実行てください
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
下のコマンドを実行するとdefaultでUbuntuをインストール 他のディストリビューションをインストールしたい場合は少し下にあります。
Windows11ならこのコマンドでWSL2がインストールされます
wsl --install
いかが表示されればOK
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
インストール中: Ubuntu
Ubuntu はインストールされました。
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
PCの再起動をお願いします
再起動するとUbuntuの設定画面へ 表示されないとき
再起動して、Ubuntuの設定に進みますがもしも、表示されない場合は、ウィンドウズのメニューを開くとUbuntuがアプリに追加されているので、それをクリックして実行
ターミナルが起動すると、少し時間が立ってからUbuntuのユーザーネームを入力する項目がでます
名前とパスワードを入力すると下の画面が出て成功します。
別のLinuxディストリビューションをインストールした場合
下のコマンドを入力すると、インストールするディストリビューション一覧が表示される
wsl --list --online
wsl --install -d <Distro>を使用してインストールします。 を使用してインストールします
サンプル
wsl --install -d Debian
wsl2がインストールされてLinuxがインストールされているか確認する方法
wsl --list --verbose このコマンドを実行すると以下のように表示されればOK。複数ある場合、default設定のLinuxは名前の前に*がついていたらそれが実行中となります
WSL2でLinuxのディストリビューションを切り替える方法
defaultを切り替える場合のコマンド
wsl --set-default <Distro>
ただ実行したい場合は
wsl -d <Distro> コマンドで実行が可能です
Dockerのインストール方法
ターミナルでwsl -d Ubuntu を入力してUbuntuを起動します。
間違えないように1行ずつ入力していくことをおすすめします。
\のバックスラッシュがある場所は、次の行とつながっているので、\がある行と次の行は1行のコマンドとして同時に入力してください。わかりやすく開業を入れておいたので、改行されている部分ごと実行してください。もしかしたら、途中で\がない状態で開業されている場合があります。ブラウザの設定で。そのあたりを気をつけてください
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 "$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
もし選択肢が出たらYで実行
処理が終わったら docker version を実行
Dockerが動くかHello Worldの時間だ!!!
sudo service docker start
でDockerを起動して
sudo docker run hello-world
下のコマンドも合わせてやっておくと便利です。Dockerコマンドをsudoなしで実行できるようになります。
sudo usermod -aG docker $USER
GitHubのDockercomposeのインストール
https://matsuand.github.io/docs.docker.jp.onthefly/compose/install
スクロールするとタブがあり、Linuxのタブをクリック
そして1の以下のコマンドを実行してDocker Composeの現時点での再診の安定版をダウンロードします。コピーして実行
よくわからない人向けバージョン2.4.1で良ければ下を1行ずつコピペ
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
Docker Composeがインストールされたら以下のコマンドを実行
実行バイナリに対して実行権限を与えます。とりあえずDocker Composeを使えるようにするおまじないだと思えばOK
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
特に何も表示なければ、OK!あとはdocker composeがインストールされたか確認!バージョンチェック
docker compose version
このように表示されればOK! もちろんこの記事以降にバージョンが更新されていれば、これよりも大きい数字になっています。※バージョンを指定していなければ
VSCodeのWSLの拡張設定
私の環境は主にVSCodeでWSL使うことを想定しているので、まず、VSCodeの設定を行います
VSCodeをインストールして、左のメニューに有るボタンをクリック
@exe:"wsl"で検索して下をインストール
そしてRestart to Updateをクリック
ファイルを移動させたりする方法はこちら