お疲れ様です。
今回初めて、WindowsでWSL2 + Ubuntu + Dockerを使って開発環境を構築しました。
その際に実施した手順を、補足付きで備忘録としてまとめています。
自分用の整理ですが、他の方の参考になれば嬉しいです。
目的
🐧 WSL2 + Ubuntu + Docker を使った、快適な開発環境を構築する。
環境構築手順
✅ 1. WSL のインストールと Ubuntu 導入
必ずPowerShellは 管理者として実行 してください
wsl --install
WSLがインストールされ、Ubuntuが自動で導入されます。
もしUbuntuが未導入の場合は以下で導入する。
wsl --install -d Ubuntu
💬 補足1:Ubuntuとは?
Ubuntu は Linux の一種で、無料で使えるオープンソースのOS。
初心者に優しく、開発やサーバー用途に広く使われている。
Ubuntu公式
💬 補足2:なぜ「管理者」として実行が必要なのか?
wsl --install は以下のようなシステムレベルの変更を行います。
これらは管理者権限でないとそもそも実行ができません。
- WSL機能の有効化(OptionalFeature)
- Linuxカーネルのインストール
- ディストリビューションの追加(例:Ubuntu)
- 再起動のトリガー
✅ 2. WSL バージョンの確認と切り替え
wsl -l -v
VERSION 列が 2 になっていればOK。
もし 1 の場合は以下で切り替えること。
wsl --set-version Ubuntu 2
💬 補足:WSL1 と WSL2 の違い
| 項目 | WSL1 | WSL2 |
|---|---|---|
| 動作方式 | Linuxシステムコールの変換 | 本物のLinuxカーネルを使用 |
| Docker対応 | 制限あり | 完全対応 |
| ファイルI/O速度 | Windows ↔ Linux高速 | Linux内高速、Windows ↔ Linuxはやや遅い |
| Linux互換性 | 一部制限あり | フル互換性あり |
上記の表から、開発用途では WSL2 が推奨されている。
✅ 3. 初回起動とLinuxユーザー登録
wsl
初回のみ「Linuxユーザー名」「パスワード」を設定する
これはWSL内のUbuntu用ユーザーで、Windowsのアカウントとは別物であるため注意
✅ 4. Linuxファイルへのアクセス(Windowsから)
\\wsl.localhost\Ubuntu\
WindowsエクスプローラーからWSL内ファイルにアクセス可能
例:\wsl.localhost\Ubuntu\home\your-user\projects
✅ 5. 必要な開発ツールのインストール
sudo apt update
sudo apt install -y git docker.io docker-compose make
以下内容をまとめてインストールする。
- git:バージョン管理
- docker.io:コンテナ実行環境
- docker-compose:サービス構成をまとめて管理
- make:ビルド自動化(必要な場合)
💬 補足1:インストールコマンドについて
上記は一例。プロジェクトに応じて build-essential や libpq-dev などのパッケージも追加で必要になることがあります。
💬 補足2:Docker Desktopとの連携について
Docker は、Windows 側にインストールした Docker Desktop と連携して動作します。
WSL2 が有効であれば、WSL 上からそのまま docker コマンドを使えます。
✅ 6. プロジェクトのセットアップ(ここからは各開発環境に合わせる)
git clone https://github.com/your-name/your-project.git
cd your-project
docker compose up --build
💬 補足1:おすすめのプロジェクト構成ディレクトリ(WSL)
mkdir -p projects/your-project
- /home/your-user/projects 内に配置することで、I/Oが速くなる
- Windows側と共有したい場合は、/mnt/c/Users/your-name/... へのマウントも可能(ただし速度は落ちる)
💬 補足2:VSCode や Cursor との連携について
Visual Studio Code を使っている場合は、拡張機能「Remote - WSL」を使えば、
Ubuntu 環境をそのままエディタで操作できます。
まとめ
というわけで、初めての環境構築をまとめてみました。
これまで基本的に mac しか使ってこなかったので、今回を機に Windows 上でも開発ができるようになれたら、対応力が広がるな〜と思っています。
お付き合いいただき、ありがとうございました。