🐳

wsl2にUbuntu24.04+docker環境を構築

2025/03/10に公開

本記事はあくまで自分用メモです。
他の方が図表も交えて分かりやすく解説しておられますので、そちらをご参照いただくことをお勧めします。

なんで構築したいのか?

自宅用ファイルサーバーなどに使いたいと昨年、3万円ほどのminiPCを購入しました。
sambaとsyncthing、pi-holeの導入だけでここまで運用していましたが、immichなる面白そうなサービスを見つけてしまったので導入しようと調べていたんですが、、、
いよいよ環境が複雑かつぐちゃぐちゃになりそうだったので、dockerの勉強をしようと考えdockerを勉強しようと思ったのが今。

メモ帳にまとめれば十分でしたが、Zennにアップした方がいつでも読めるし、PCやサーバー破損した場合のリスクヘッジをしておきたかったので記事として作成することに。
dockerなので順不同で別記事に分けることになりそうですが、

  • samba
  • pi-hole
  • syncthing
  • immich

あたりの導入を目的とし、あくまでwsl2上のUbuntuを開発・実験環境として構築して、これらのサービスを入れてみてスキルアップにつなげたい。

環境

以下環境で作成しました。

  • 作成日:2025年3月10日
  • windows 11 Pro 24H2
  • Ubuntu24.04.1(microsoft storeに記載のバージョン)

構築

wsl2のインストール

wsl2のインストール

PowerShell
wsl --install

念のためアップデートを実行。いまインストールしたばかりなので現在最新って言われるハズ。

PowerShell
wsl --update

標準利用するバージョンを2に設定しておく。

PowerShell
wsl --set-default-version 2

現在の環境一覧を確認

PowerShell
wsl --list --verbose
  NAME            STATE           VERSION
* Ubuntu          Stopped         2

Ubuntu 24.04のインストール

microsoft storeからUbuntuをインストール。マウスでポチポチして完了。
2025年3月現在の最新版は24.04.1。

現在の環境一覧を確認。Ubuntu24.04が、環境名Ubuntu-24.04として作成された。

PowerShell
wsl --list --verbose
  NAME            STATE           VERSION
* Ubuntu          Stopped         2
  Ubuntu-24.04    Stopped         2

microsoft storeからダウンロードしたUbuntu24.04が標準になるように設定変更。

PowerShell
wsl --set-default Ubuntu-24.04

変更できたか確認、うまく変更された。

PowerShell
wsl --list --verbose
  NAME            STATE           VERSION
* Ubuntu-24.04    Stopped         2
  Ubuntu          Stopped         2

docker、docker-composeのインストール

更新し、事前に必要なパッケージをインストールする。

Windows Terminal
sudo apt update
sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

dockerの公式証明書をインストール。

Windows Terminal
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

dockerのインストール。

Windows Terminal
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

docker達のバージョン確認

Windows Terminal
docker --version
Docker version 28.0.1, build 068a01e
Windows Terminal
docker compose version
Docker Compose version v2.33.1

特にdocker-composeは、複数のコンテナを扱う際に便利なツールなので、必須で入れる。


ここまでの内容をエクスポート

いつでももとに戻せるように、tarファイルとしてエクスポートしておきます。

エクスポート用フォルダ作成

今回はC:/Users/(ユーザー名)/wsl_backupsディレクトリを作成し、ここにファイルをバックアップファイルとして格納するようにします。

PowerShell
cd C:/Users/(ユーザー名)
mkdir wsl_backups

ファイルとしてエクスポート

--exportを使用して、指定したファイル名でエクスポートします。

PowerShell
cd ./wsl_backups
wsl --export Ubuntu-24.04 ./ubuntu_20250310.tar

インポートしたい場合は?

--importを使用して、指定したファイルから新しい環境名でインポートします。

PowerShell
wsl --import Ubuntu24.04-2 Ubuntu24.04-2 ubuntu_20250310.tar

こうやって複数環境を作成できるので便利↓

PowerShell
wsl --import Ubuntu24.04-3 Ubuntu24.04-3 ubuntu_20250310.tar

複数ある環境から、環境名を指定して実行するには?

--distributionを使って環境名を指定して実行する。こんな感じ。

PowerShell
wsl --distribution Ubuntu24.04-3

複数ある環境から、環境名とユーザー名を指定して実行するには?

--distributionを使って環境名を、--userを使ってユーザー名をそれぞれ指定して実行する。こんな感じ。

PowerShell
wsl --distribution Ubuntu24.04-3 --user owner

仮想環境の削除

ひととおり検証して不要になった仮想環境を削除するには、--unregisterを使って環境名を指定し削除する。こんな感じ。

PowerShell
wsl --unregister Ubuntu24.04-3

Discussion