Gemini CLI sandboxを使うためのPodmanセットアップ手順(Windows)
はじめに
Gemini CLI を安全に利用するための機能である sandbox を動作させるため、Windows 環境にコンテナ実行基盤 Podman をセットアップする手順です。
2025-09-05 時点の最新情報を基にまとめています。
前提条件
項目 | 内容 |
---|---|
OS | Windows 10 22H2 / Windows 11 23H2 以降 |
WSL2 | 有効化済み(Step-2 で確認) |
Gemini CLI | インストール済みであること |
Step-0 : 管理者 PowerShell を開く
以降のコマンドは 管理者 PowerShell で実行します。
(スタートメニュー → “PowerShell” → 右クリック 管理者として実行)
Step-1 : Podman (GitHub Release 版) をインストール
-
ブラウザで
https://github.com/containers/podman/releases を開く
例:podman-installer-windows-amd64.exe
など -
EXE をダウンロードして実行
インストーラのオプションはデフォルトで OK -
PowerShell を再起動し、バージョン確認
podman --version # Example: podman version 5.1.2
Step-2 : WSL2 が有効か確認
wsl -l -v
-
何も表示されない/“VERSION” 列が 2 になっていれば OK
-
1 しか無い場合は
wsl --set-default-version 2
PC を再起動して再度確認。
Step-3 : Podman Machine を作成(初回のみ)
podman machine init --name podman-machine --cpus 4 --memory 4096 --disk-size 20
CPU / メモリ / ディスクは必要に応じ変更
Step-4 : Podman Machine を起動
podman machine start
状態確認:
podman machine list
# STATE が Running になっている
podman info # JSON が表示されればソケット疎通 OK
Step-5 : デフォルト接続を確認
podman system connection list
podman-machine
(Step-3 で付けた名前)の Default 列が true になっていない場合:
podman system connection default podman-machine
Step-6 : Gemini CLI サンドボックスが起動するかテスト
Gemini CLI のサンドボックス環境を起動し、対話プロンプトを開始します。
gemini -s
1回目はイメージ us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.2.x
を Pull するため 1〜2分かかります。
コマンドが成功すると、以下のようにGemini CLIの対話プロンプトが起動し、画面下部のステータスバーに sandbox-x.x.x-x
のようなコンテナ名が表示されます。
███ █████████ ██████████ ██████ ██████ █████ ██████ █████ █████
░░░███ ███░░░░░███░░███░░░░░█░░██████ ██████ ░░███ ░░██████ ░░███ ░░███
░░░███ ███ ░░░ ░███ █ ░ ░███░█████░███ ░███ ░███░███ ░███ ░███
░░░███ ░███ ░██████ ░███░░███ ░███ ░███ ░███░░███░███ ░███
███░ ░███ █████ ░███░░█ ░███ ░░░ ░███ ░███ ░███ ░░██████ ░███
███░ ░░███ ░░███ ░███ ░ █ ░███ ░███ ░███ ░███ ░░█████ ░███
███░ ░░█████████ ██████████ █████ █████ █████ █████ ░░█████ █████
░░░ ░░░░░░░░░ ░░░░░░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░
Tips for getting started:
...
╭─────────────────────────────────────────────────────────────────────────────╮
│ > Type your message or @path/to/file │
╰─────────────────────────────────────────────────────────────────────────────╯
/c/dev/vibe-coding-handson sandbox-0.2.2-1 gemini-2.5-pro (100% context)
Podmanの日常運用コマンド
操作 | コマンド |
---|---|
VM の停止 | podman machine stop |
VM の再開 | podman machine start |
VM の削除 | podman machine rm podman-machine |
補足: Gemini CLI sandbox の目的とファイルシステム
Gemini CLI の sandbox は、コードを安全に実行するための「隔離された環境」です。これにより、ホストマシン全体に意図せず影響が及ぶことを防ぎます。
ファイルシステムの隔離:
-
gemini -s
を実行すると、コマンドを実行したディレクトリ(プロジェクトディレクトリ)のみがコンテナ内にマウントされます。 - コンテナは、そのディレクトリより上の階層や、兄弟関係にある他のディレクトリに一切アクセスできません。
- これがサンドボックスの重要なセキュリティ機能です。
より詳細な情報については、公式のサンドボックスドキュメントも参照してください。
よくあるトラブルシューティング
gemini -s
を実行しても対話プロンプトが起動しない
1. gemini -s
を実行した後、対話プロンプトに移行せずコマンドが終了してしまう場合があります。しかし、コンテナ自体はバックグラウンドで起動している可能性があります。
-
コンテナの起動確認
まずpodman ps
を実行し、STATUS
がUp
のサンドボックスコンテナが存在するか確認します。podman ps
-
コンテナへの手動接続
コンテナが起動している場合、podman exec
コマンドで手動で接続できます。podman exec -it <コンテナ名> bash # 例: podman exec -it sandbox-0.2.2-0 bash
Cannot connect to Podman socket
2. - Podman machine が Stopped
podman machine start
- 接続が Default でない
podman system connection default podman-machine
- 127.0.0.1 のループバックポートが FW / Endpoint Security で遮断されている
→ お使いのファイアウォールやセキュリティソフトの設定を確認し、Podmanが必要とするループバック接続を許可してください。
3. sandbox イメージの pull がタイムアウト
プロキシ環境下の場合、PowerShell で環境変数を設定してから gemini -s
を実行します。
$env:HTTP_PROXY = "http://proxy.example.com:8080"
$env:HTTPS_PROXY = "http://proxy.example.com:8080"
gemini -s
恒久的に設定したい場合は、Podman Machine の VM 内に直接設定します。
podman machine ssh
echo '''export HTTP_PROXY=http://proxy.example.com:8080''' | sudo tee -a /etc/profile
echo '''export HTTPS_PROXY=http://proxy.example.com:8080''' | sudo tee -a /etc/profile
exit
Discussion