LoginSignup
0
0

WSL2のUbuntu24.04にDockerをインストールしてProxyを設定する

Last updated at Posted at 2024-05-17

はじめに

WSL2+Docker+Proxy環境を構築する際、いくつかの情報をまたぎながら設定する必要がありました。
最短手順(2024年5月時点)をまとめましたのでご査収くださいw
Ubuntuは24.04LTSを新規インストールする前提です。
DockerはUbuntuにインストールします。

環境

  • Windows10
  • WSL2
  • Ubuntu 24.04
  • Docker 26.1.3

WSL2のインストール

コマンドプロンプトから次のコマンドを入力する。

Windows
wsl -update

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

Windows
wsl -update -web-download

WSL2にUbuntu 24.04をインストール

次のコマンドでUbuntu-24.04をインストールする。

Windows
wsl --install Ubuntu-24.04

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

Windows
wsl --list --online

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

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

image.png

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

<本手順は任意>
Ubuntuが起動したら、コマンドプロンプトを閉じる。
スタートメニューからMicrosoft Storeを開きで「terminal」と検索する。
「Windows Terminal Preview」をインストールする。
インストール後、スタートメニューから「ターミナル プレビュー」(以降ターミナル)を起動する。
下図のようにUbuntuを簡単に起動できるようになる。
image.png

Ubuntuにプロキシを設定する

ターミナルからUbuntuを起動する。
任意のエディタ(ここではvi)でホームディレクトリ(/home/user)の.bashrcを編集する。

Ubuntu
vi .bashrc

次のようにプロキシ設定を追加する。

パスワードで記号を使用している場合はURLエンコードする必要があります

/home/user/.bashrc
#※パスワード内の@や/など記号はURLエンコードする必要がある。
#下の例では、本来のパスワード「yourp@ssword」の「@」部分をURLエンコードして「yourp%40ssword」にしている
export HTTP_PROXY_USER=your_username
export HTTP_PROXY_PASS=yourp%40ssword

export HTTP_PROXY=http://${HTTP_PROXY_USER}:${HTTP_PROXY_PASS}@proxysrv:port/
export HTTPS_PROXY=${HTTP_PROXY}

git config --global http.proxy ${HTTP_PROXY}
git config --global https.proxy ${HTTPS_PROXY}
git config --global url."https://".insteadOf git://

apt-getにProxy設定を加える

/etc/apt/apt.conf.d以下にproxy.confを作成する。

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

以下の設定を書き込む。ここでもパスワードはURLエンコードが必要。

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

Ubuntuの再起動

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

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

Ubuntu側でsudo shutdown -rなどとしないように注意してください

Windows
wsl --shutdown

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

Dockerのインストール

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

1. パッケージリストを更新

Ubuntu
sudo apt-get update

2. 必要なパッケージをインストール

Ubuntu
sudo apt-get install

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

Ubuntu
sudo mkdir -p /etc/apt/keyrings

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

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

5. 公式の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

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

Ubuntu
sudo apt-get update

Dockerをインストール

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 vi /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@proxysrv:port/"
Environment="HTTPS_PROXY=http://your_username:yourp%%40ssword@proxysrv: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

謝辞

Qiitaユーザの皆様のおかげで助かりました。ありがとうございました。

0
0
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
0
0