プロキシ環境下でWSL上にLinux環境（Ubuntu24.04）を構築する＋Dockerも入れてみる

プロキシ環境下でWindows WSL+Linux+Dockerの環境を構築する際、いつも「あれ...これどうやるんだっけ。調べよ...」となることがありましたので、情報の整理と備忘録も兼ねて手順を残してみました。

### 1. 事前準備
1. Windowsの機能有効化<br/>
   1.1.  ```コントロールパネル＞プログラム＞Windowsの機能の有効化または無効化``` を開きます。<br/>
   1.2. ```Widows Subsystem for Linux```および```仮想マシンプラットフォーム```が有効になっていることを確認します。<br/>
   
2. PowerShellに管理者権限でPowerShell起動します。
3. 下記プロキシを設定する。（各々の環境に合ったプロキシを設定してください。）<br>

```powershell
$env:http_proxy="http://xxx"
$env:https_proxy="http://xxx"
$env:HTTP_PROXY="http://xxx"
$env:HTTPS_PROXY="http://xxx"
```

### 2. WSLデフォルトバージョンをWSL2にする
下記コマンドを入力し、wslデフォルトバージョンを2に設定します。
```powershell
wsl --set-default-version 2
```

### 3. Ubuntu24.04をインストール
1.Downloadsディレクトリにubuntu-2404.appxをダウンロードします。

```powershell
cd ~\Downloads

curl.exe -L -o ubuntu-2404.appx https://wslstorestorage.blob.core.windows.net/wslblob/Ubuntu2404-240425.AppxBundle

```

2.ダウンロードが進行していることを確認します。<br>
※Speedが"0k"になっている。または停止している場合、Ctr+Cで一度プロセスを停止し、1.2.のプロキシを設定後、再度1.2.の手順を実施してください。
```PowerShell
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  667M  100  667M    0     0   768k      0  0:14:49  0:14:49 --:--:-- 1503k#←ここ確認
```

3.UNIX usernameとpassword の設定<br>
ダウンロード完了後、任意のUNIX usernameとpasswordを入力します。<br>
```powershell
PS C:\Users\hoge\AppData\Local\Packages\Ubuntu-24.04\Ubuntu_2404.0.5.0_x64> .\ubuntu2404.exe
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: maeda
#任意のパスワード
New password:
#パスワード再入力
Retype new password:
passwd: password updated successfully
Installation successful!
```

4.全項目入力後、以下の画面が表示されていればインストール完了です。
```powershell
Welcome to Ubuntu 24.04 LTS (GNU/Linux 5.15.153.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information disabled due to load higher than 1.0


This message is shown once a day. To disable it please create the
/home/hoge/.hushlogin file.

#xxxはUNIX username
xxx@hoge.hoge:~$
```

## 3. Linux（Ubuntu-24.04）環境上にDokcker環境を構築する

### 1. 事前準備  

1.Linuxにログインした状態で、管理者モードに遷移します。<br>下記コマンドを入力してください。
```bash
sudo su
#パスワード入力が要求されるので入力してください。
[sudo] password for unixname:
```

2.rootにログインした状態で下記プロキシを設定します。
```powershell
$env:http_proxy="http://xxx"
$env:https_proxy="http://xxx"
$env:HTTP_PROXY="http://xxx"
$env:HTTPS_PROXY="http://xxx"
```

### 2. Dockerのaptリポジトリのセットアップ
1.下記コマンドを実行する。
```bash
apt-get update

#debian環境にインストールする場合、curl,gpgが未インストールの可能性があります。
#下記コマンドを実行すると、必要なパッケージをインストールできます。
#apt-get install -y curl && apt-get install -y gpg

apt-get install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
```
:::note warn
ユーザーログイン状態で```sudo apt-get update```を実行した場合、sudo により別プロセスが生成され環境変数が無効の状態でupdateが実行されます。<br/>
この場合、下記のエラーが発生しますので、[手順3.1.2.] のプロキシを再度設定してから再実行してください。
```bash
hoge@xxxx:~$ sudo apt-get update

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/noble/InRelease  Cannot initiate the connection to archive.ubuntu.com:80 (2620:2d:4000:1::102).
```
:::

2.リポジトリをaptに追加
```bash
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" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null
```
3.apt更新
```bash
apt-get update
```
   
### 3. Dockerパッケージをインストール
1.下記コマンドを実行
```bash
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

2.インストール確認
```bash
docker -v
#下記の様にバージョンが表示されていれば完了（バージョンは一致していなくてもOK）
Docker version 27.3.1, build ce12230
```