4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

やりたいこと

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

https://hub.docker.com/signup

Step5.RancherDesktopの設定

1.インストール

既にインストール済みの場合は、Skip
未インストールの場合は、以下から取得

URL

https://github.com/rancher-sandbox/rancher-desktop/releases

2.Docker用の設定

初回起動時のみ行う

2-1.Docker設定とWSLイメージの割り当て

画像の通りに行う
docker設定(起動時に表示されるファーストビュー)
2.gif

File>Preferences>WSLからWSLイメージ設定
1.gif

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をインストールして再利用した方が良い気もする
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?