1
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?

Proxy配下でWSL2 + Ubuntu + Docker環境構築

Last updated at Posted at 2024-05-17

Proxy配下でWSL2 + Docker(Docker Engine)環境を構築する手順です。

対象読者

  • 企業や組織等において、Proxy配下でWindowsを使ってる人
  • Docker Desktopを買ってもらえない人※
  • Linuxの基本操作ができる人

※Docker Desktopは従業員数250名を超える企業の商用利用では有料サブスクリプションが必要です。

環境

  • Windows10 Pro 22H2(Windows10 HomeでもOK)

WSL2+Ubuntuを1コマンドで一括インストールする方法もあります。
https://learn.microsoft.com/ja-jp/windows/wsl/install

本記事では、Ubuntu 24.04LTSをインストールするため、以下を参考に一つ一つ手動で行います。
https://learn.microsoft.com/ja-jp/windows/wsl/install-manual

「ターミナル プレビュー」をインストールする

上記のmicrosoftのwslのインストール手順にも「省略可能」として記載されている「Windows ターミナル」をインストールすると便利です。
インストールする場合は、スタートメニューからMicrosoft Storeを開きで「terminal」と検索します。
「Windows Terminal Preview」をインストールします。
インストール後、スタートメニューから「ターミナル プレビュー」(以降 ターミナル )を起動してください。

Windows の機能の有効化

スタートボタン横の検索枠に、「windows の機能の」まで入力すると、「Windows の機能の有効化または無効化」メニューが表示されるのでクリックします。
image.png

次の2つのチェックボックスをオンにします。

  • Linux 用 Windowsサブシステム
  • 仮想マシン プラットフォーム
    image.png
    image.png

WSL2 を最新バージョンにする

ターミナルから次のコマンドを入力します。

Windows PowerShell
wsl --update

エラーが出て進まない場合は以下を試してみてください。

Windows PowerShell
wsl --update --web-download

--web-downloadは、Microsoft Store ではなくインターネットからディストリビューションをダウンロードするオプションです。
wslのコマンドやそのオプションについては、--helpで確認できます。

Windows PowerShell
wsl --help

WSL2にUbuntu 24.04をインストール

インストール可能なディストリビューションは次のコマンドで確認できます。

Windows PowerShell
wsl --list --online

本記事では、次のようにUbuntu-24.04をインストールします。

Windows PowerShell
wsl --install Ubuntu-24.04

インストールの最後でユーザー名/パスワードの入力を求められるので、任意に入力してください。

ここではユーザ名をuserとしています。
以降、Ubuntuのユーザ名はuserとして記述します

image.png

ターミナル がUbuntuにログインした状態になったら、exit と入力してUbuntからログアウトし、ターミナル もいったん閉じてください。

Ubuntuにプロキシを設定する

ターミナル を再起動することで、自動的にメニューに Ubuntu 24.04 LTS が追加されるはずです。
選択してUbuntuを起動してください。
image.png

任意のエディタ(ここではnano)でホームディレクトリ(/home/user)の.bashrcを編集します。

Ubuntu
nano .bashrc

カーソルをファイルの一番下まで移動して…
image.png

次のようにプロキシ設定を追加してください。

Ubuntu /home/user/.bashrc
# 以下の3行をご自身の環境に合わせて変更してください
export PROXY_SVR_PORT=proxy.company.com:port
export HTTP_PROXY_USER=your_proxy_username
export HTTP_PROXY_PASS=yourp%40ssword

# for Curl
export HTTP_PROXY=http://${HTTP_PROXY_USER}:${HTTP_PROXY_PASS}@${PROXY_SVR_PORT}/
export HTTPS_PROXY=${HTTP_PROXY}
# for wget
export http_proxy=${HTTP_PROXY}
export https_proxy=${HTTP_PROXY}
# for git
git config --global http.proxy ${HTTP_PROXY}
git config --global https.proxy ${HTTPS_PROXY}
git config --global url."https://".insteadOf git://

Ctrl+Sで保存、Ctrl+Xでnanoを閉じてください。

パスワードで記号を使用している場合はURLエンコードする必要があります
下の例では、本来のパスワード「yourp@ssword」の「@」部分をURLエンコードして「yourp%40ssword」にしています
ASCII文字とURLエンコードの対応表

aptのProxy設定

「aptのプロキシ対応」 の「方法2」で設定します。
(「方法5-2」で設定すれば.bashrcの変更だけでイケるかなと思ったのですがダメそうでした)

「方法2」の通り、/etc/apt/apt.conf.d以下にproxy.confを作成します。

Ubuntu
sudo nano /etc/apt/apt.conf.d/proxy.conf

proxy.conf に以下のようにProxy設定を書き込んでください。
ここでもパスワードにはURLエンコードが必要です。

Ubuntu /etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://your_username:yourp%40ssword@proxy.company.com:port/";
Acquire::https::Proxy "http://your_username:yourp%40ssword@proxy.company.com:port/";

[任意] Host名の変更

UbuntuのHost名を変更したい場合は、以下のようにwsl.confに設定を追記してください。
ファイルを開き、

Ubuntu
sudo nano /etc/wsl.conf

以下の2行を追記

Ubuntu /etc/wsl.conf
[network]
hostname = myhostname

再起動または再ログイン

現在までの設定を反映させるため、Host名を変更した場合は「再起動」、していない場合は「再ログイン」してください。

「再起動」方法

WSL2では以下の手順でUbuntuを再起動します。

1. ターミナル の「Windows Powershell」タブに移動し、次のコマンドでUbuntuを停止させる

Windows
wsl --shutdown

2. ターミナル でUbuntu側のタブを選択し、Enterキーを押下する

Ubuntu側で sudo shutdown -r としても再起動しません

「再ログイン」方法

再ログインするには、exit と入力してログアウトし、ターミナル から再度Ubuntuを起動してください。

Ubuntu
exit

Ubuntuのパッケージを最新に更新する

Ubuntuに再ログイン後、次のコマンドでアップデートすべきパッケージを最新に更新します。

Ubuntu
sudo apt update
sudo apt upgrade
Do you want to continue? [Y/n]

と表示されたら「y」キーを押下して [Enter] してください。

Docker Engineのインストール

リポジトリをセットアップ (参考) (公式)

※パッケージリストの更新とインストールは、直前にapt updateを行っているため省略します。

1. 公式のGPGキーを保存するディレクトリを作成する

Ubuntu
sudo mkdir -p /etc/apt/keyrings

2. 公式のGPGキーを取得する

Ubuntu
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

3. 公式のDockerリポジトリを追加する

Ubuntu
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. 改めてパッケージリストを更新する

Ubuntu
sudo apt-get update

Docker Engineをインストール

1. Docker Engine、containerd、Docker Compose をインストール

Ubuntu
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2. インストールされたdockerのバージョンを確認
バージョン確認することで正常にdockerがインストールされたことを確認します。

Ubuntu
docker -v

3. dockerコマンドをsudoなしで実行できるようにする
dockerグループにUbuntuインストール時に作成したユーザーを追加します。
(今回のケースでは $USER 部分は user)

Ubuntu
sudo usermod -aG docker $USER

4. 以下のコマンドで変更を反映させる
(上記と同じく、今回のケースでは $USER 部分は user)

Ubuntu
su - $USER

DockerのProxy設定

本家ドキュメント に従って以下のように設定してください。

1. Docker サービスに対応した systemd のドロップイン・ディレクトリを生成する

Ubuntu
sudo mkdir -p /etc/systemd/system/docker.service.d

2. /etc/systemd/system/docker.service.d/http-proxy.conf というファイルを生成して、次の手順で環境変数 HTTP_PROXY の設定を書き込む

Ubuntu
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

【重要】
Dockerのパスワード設定だけは、URLエンコードに加えて「%」をダブルにする必要があります!

/etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://your_username:yourp%%40ssword@proxy.company.com:port/"
Environment="HTTPS_PROXY=http://your_username:yourp%%40ssword@proxy.company.com:port/"
Environment="NO_PROXY=localhost,127.0.0.1"

3. 変更を反映するため、Docker を再起動する

Ubuntu
sudo systemctl daemon-reload
sudo systemctl restart docker

4. 設定が読み込まれ、変更が反映したかどうかを確認する

Ubuntu
sudo systemctl show --property=Environment docker

Ctrl+Cで抜ける)

hello-worldで最終確認

Ubuntu
docker run hello-world

「Hello from Docker!」を表示されていればOKです。
image.png

参考:Ubuntuのアンインストール

WSLでインストールしたディストリビューションをアンインストールするには、以下の書式でコマンドを実行します。

Windows
wsl --unregister <ディストリビューション>

したがって、Ubuntu-24.04をアンインストール(削除)したい場合は次のようにコマンドを実行します。

Windows
wsl --unregister Ubuntu-24.04

また、設定の「アプリと機能」に当該ディストリビューションが残っているため、「アンインストール」して削除しておきましょう。
image.png

参考サイト

1
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
1
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?