やりたいこと
WSLにUbuntuをいれDockerで管理したい
Dockerは、無料のRancherDesktopを利用
RancherDesktopが安定しなかったので、構築手順をメモ書きする
Step1.Hyper-Vの状態確認
WSLで必要なHyper-Vの状態が有効であることを確認
PowerShellを起動し以下のコマンドを実行
コマンド(PowerShell)
Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
実行結果
FeatureName : Microsoft-Hyper-V-All
DisplayName : Hyper-V
Description : 仮想マシンおよびそのリソースを作成および実行するためのサービスおよび管理ツールを提供します。
RestartRequired : Possible
State : Enabled
CustomProperties :
Step2.WSLの版数確認/最新化
WSLが最新でない場合、動作が安定しない場合があるため、最新版にしておいた方が良い
1.WSL版数確認
コマンド(PowerShell)
# WSLの版数が低い場合は、このコマンドがないっぽい(2.0.9.0では存在した)
wsl --version
実行結果
WSL バージョン: 2.0.9.0
カーネル バージョン: 5.15.133.1-1
WSLg バージョン: 1.0.59
MSRDC バージョン: 1.2.4677
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.19045.3930
2.WSL更新
MicrosoftのGithubにアクセス
現行より新しい物があれば、ダウンロードしてインストール
※2024年2月7日現在の最新は2.1.1版
URL
https://github.com/microsoft/WSL/releases
Step3.Linuxのインストール
インストール
Microsft Storeから構築したいLinuxのdistributionを検索
自分の場合は、Ubuntu 22.04LTS版をインストールした
※ダウンロードには、それなりの時間がかかる
ユーザ作成
Microsft Storeから「開く」を実行か、スタートメニューからインストールしたdistributionを起動
Linuxのユーザを作成する
画面(Linuxコンソール)
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: [任意のユーザ名を入力]
# ↓パスワード入力へ
New password: [任意のパスワードを入力] ※sudo時のパスワードになる
Retype new password: [上記と同じパスワードを入力]
# ↓ユーザ作成完了
passwd: password updated successfully
WSL確認
PowerShellでインストールされ、かつ起動しているかを確認
コマンド(PowerShell)
wsl -l -v
実行結果
NAME STATE VERSION
* Ubuntu-22.04 Running 2
WSLに選択されているLinuxが起動していることが確認できる
Step4.Dockerアカウント作成
既に持っている場合はSkip
持っていない場合は、アカウントを作成
URL
Step5.RancherDesktopの設定
1.インストール
既にインストール済みの場合は、Skip
未インストールの場合は、以下から取得
URL
https://github.com/rancher-sandbox/rancher-desktop/releases
2.Docker用の設定
初回起動時のみ行う
2-1.Docker設定とWSLイメージの割り当て
画像の通りに行う
docker設定(起動時に表示されるファーストビュー)
File>Preferences>WSLからWSLイメージ設定
2-2.RancherDesktopがWSLに組み込まれたかを確認
PowerShellでインストールされ、かつ起動しているかを確認
コマンド(PowerShell)
wsl -l -v
実行結果
NAME STATE VERSION
* Ubuntu-22.04 Running 2
rancher-desktop-data Stopped 2
rancher-desktop Running 2
rancher-desktopが追加されていることを確認
3.RancherDesktopのProxy設定
Proxyを使用していなければSkip
PowerShellでインストールされ、かつ起動しているかを確認
コマンド(PowerShell)
wsl -d rancher-desktop
# ↓rancher-desktopのイメージに入る
# 設定ファイルにProxyを追加
vi /etc/rc.conf
# ↓のような記載を追記
rc_env_allow="http_proxy http_proxy no_proxy"
export http_proxy="192.168.1.1:80"
export https_proxy="192.168.1.1:443"
Step6.Dockerの動作確認
Dockerのプロジェクトがある場合は、それを利用
プロジェクトが無い場合は、以下で動作確認用のプロジェクトを作成
1.Dockerの起動ファイルを作成
WSLのLinux上で、以下のコマンドをでファイルを作成
コマンド(Linux)
# 起動直後、/home/[user]ディレクトリにいるのでDocker用のフォルダを作成
mkdir test
# フォルダに移動し起動ファイルを作成
cd test
vi docker-compose.yml
# ↓viエディタ上で以下を設定
# インテントが正しくない場合、起動時にMappingエラーが発生する
version: '3.1'
services:
app:
image: php:7.3.6-apache
ports:
- "80:80"
volumes:
- .:/var/www/html
2.コンテンツを作成
上記から、別途新規のファイルを作成
コマンド(Linux)
vi index.php
# ↓viエディタ上で以下を設定
<?php phpinfo();
3.Dockerを起動
以下のコマンドで起動する
初回のコマンド実行時、Dockerからライブラリを取得してくるため時間がかかる
コマンド(Linux)
# 初回のみのおまじない
docker login
# Webサーバ起動コマンド
# -f省略時、docker-compose.ymlを参照する
docker-compose up -d
4.動作確認
Webブラウザで以下にアクセスし、ページが表示されれば構築は完了
http://localhost
最後に
- Windowsを終了する場合などは、RancherDesktopを正しく終了させないと、次回起動時に環境が壊れやすい気がする
- RancherDesktopで吐き出されるエラー(WSLのエラー)は、解決の糸口につながることはないため、問題発生時はFactoryResetをしたほうがはやい
- 素直に、古いPCにLinuxをインストールして再利用した方が良い気もする