WSL2のUbuntu上にDocker環境を構築する

未分類
  1. 前の記事のおさらい
WSL2でUbuntuの環境をWindowsに構築する Part.2
前の記事のおさらい 前回はWindows Terminalを導入 ~ WSL2でUbuntuをインストールするまでの説明でした。 今回はUbuntuそのものの設定の手順になるので、WSL2以外のUbuntuの設定としても備忘録として役...

前回の記事で、WindowsのWSL2を用いてUbuntuの環境を構築しました。

今回は、Dockerの環境をWSL2上に構築します。

椛

もちろんDocker Composeのプラグインも導入します。

手順

前提

  • WSL2でUbuntu(バージョンはとりあえず22.04とする)を構築済
  • Ubuntuのユーザーの設定を終えている
  • そのユーザーは管理者権限を持っている

インストール

基本的には公式の通りに行えばOKです。

Docker Engine インストール (Ubuntu向け)

sudo apt remove remove docker docker-engine docker.io containerd runc
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

動作確認

Dockerエンジンをスタートして、ステータスを確認後にHelloWorldコンテナを起動します。

sudo service docker start
sudo service docker status
sudo docker run hello-world

Proxy設定

Proxy関係でコンテナが起動できなかった場合、Dockerには独自にProxy設定が必要なので追加します。

sudo nano /etc/default/docker

If you need Docker to use an HTTP proxy, it can also be specified here.

という文章の下に以下の文面を追加

export http_proxy="<ここにプロキシのアドレスとポートを書く>"
export https_proxy=$http_proxy
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy
export no_proxy="127.0.0.1,localhost"
export NO_PROXY=$no_proxy

WSLを再起動して再度試す

wsl --shutdown
sudo service docker start
sudo docker run hello-world

ちなみに、Dockerコンテナ内は別途Proxyの設定が必要(大体は環境変数をコンテナ内に引っ張ってくることになる)。

Dockerエンジンの自動起動

ログイン時のプログラムに自動起動設定をしておくとよい。

nano ~/.profile

以下のコードを追加

sudo service docker start
sudo service docker status

Docker Hubへの自動ログイン設定

自動起動と同じファイル(~/.profile)に自動ログイン設定を書いておくと、Docker Hubへのログインの恩恵が受けれる。

準備

もちろんだがDocker Hubのユーザー登録を行っておく必要がある。

アクセストークン発行

ユーザー名とパスワードによる自動ログインも可能だが、悪エストークンを発行しておくとよりセキュアになる。

  1. ブラウザからDockerにログインする
  2. Account Settingsを開く
  3. SecurityメニューのAccess Tokensを開く
  4. New Access Tokenを実行
  5. Genetateでトークンを発行

控えたトークンをホームディレクトリにフォルダを作るなどして保存する。

nano ~/.docker/token.txt

.profileへの追記

cat ~/.docker/token.txt | docker login --username <ユーザー名> --password-stdin

ログインの恩恵

無料ユーザーでも、6時間以内のImage Pull回数が200回まで行える・・・など

Dockerコマンド時にsudoを不要にする

sudo usermod -aG docker <Ubuntuのユーザー名>

再ログイン後にsudoが不要になっているはず。

最後に

椛

WindowsだとDocker Desktopを導入してもいいんですが、

LinuxとDockerの関係性を考えたら、WSL2上にインストールしておきたいですね。

次回はコンテナの流れでKubernetesの環境構築を説明予定です。

葵

Kubernetes難しくてぜんぜんわからん。

椛

ではぜひ環境を構築して、勉強の足しにしてあげてくださいね。

 

 

 

タイトルとURLをコピーしました