先に結論だけ
Dev Container CLIでは--docker-pathオプションで代替コンテナエンジンを指定できます。
devcontainer up --docker-path podman --workspace-folder .
使用できるコンテナエンジンの例:
- Podman: セキュリティ重視(デーモンレス、rootless)
- Finch: AWS環境向け(AWS公式)
この記事はDev Container CLI専用の内容です。VS Code拡張機能(Dev Containers extension)では適用できません。
はじめに
この記事では、Dev Container CLIでDocker以外のコンテナエンジンを使用する方法を解説します。
対象読者
- Dev Container CLIをはじめて使う方
- Docker Desktopの代替を探している方
- コンテナエンジンの選択肢を知りたい方
検証環境
- macOS 15.7.1
- Dev Container CLI 0.80.1
基本的な使い方: --docker-pathオプション
Dev Container CLIでは、--docker-pathオプションでコンテナエンジンを指定できます。
基本構文
devcontainer up --docker-path <engine-name> --workspace-folder .
対応コマンド
以下のコマンドで--docker-pathオプションが使用できます:
devcontainer updevcontainer builddevcontainer execdevcontainer set-up
使用例
# Podmanを使用
devcontainer up --docker-path podman --workspace-folder .
# Finchを使用
devcontainer up --docker-path finch --workspace-folder .
設定ファイルは存在しない
Dev Container CLI自体には設定ファイル機能がありません:
-
~/.devcontainer/config.jsonのような設定ファイルは存在しない - 環境変数(
DOCKER_PATHなど)のサポートもない - 毎回コマンドオプションで指定する必要がある
永続化の方法: シェルエイリアス
毎回--docker-pathを指定するのが面倒な場合、シェルエイリアスを設定できます。
設定方法
.zshrcまたは.bashrcに以下を追加:
# Podmanを使用する場合
alias devcontainer='devcontainer --docker-path podman'
設定後、シェルを再起動するかsourceコマンドで反映:
source ~/.zshrc
# または
source ~/.bashrc
これにより、以下のように簡潔に実行できます:
devcontainer up --workspace-folder .
Podman: セキュリティ重視の選択
Podmanは、セキュリティを重視する環境に最適なコンテナエンジンです。
主な特徴
-
デーモンレス設計
- 中央のデーモンプロセスが存在しない
- 単一障害点(SPOF)を排除
- 各コンテナーが独立プロセスとして実行
-
ネイティブRootlessモード
- デフォルトでroot権限不要
- ユーザー名前空間による完全な分離
- コンテナー脱出攻撃でもroot権限取得不可
-
Docker CLI互換
-
alias docker=podmanで置き換え可能 - 既存のDockerコマンドがそのまま動作
-
インストール
# macOS
brew install podman
Dev Container CLIでの使用
devcontainer up --docker-path podman --docker-compose-path podman-compose --workspace-folder .
動作確認済み
- VS Code公式ドキュメント: Podman 5+のサポートを明記
参考リンク
Finch(AWS環境向け)
主な特徴
- AWS公式のオープンソースツール
- nerdctl + containerd + BuildKitの統合パッケージ
- AWS SAM CLI統合(2025年)
- macOS、Linux、Windowsサポート
インストール
brew install finch
Dev Container CLIでの使用
Finchを使用する前に、finch.yamlに以下を設定:
dockercompat: true
Dev Container CLIでの使用:
devcontainer up --docker-path finch --workspace-folder .
既知の制限
- Dockerソケット統合は未サポート
- キャッシュ最適化は未サポート
- nerdctl 2.0.0未満では長いコンテナー名に問題あり(76文字制限)
動作確認済み
- Finch公式ドキュメント: DevContainers統合の詳細
- AWS Blog: v1.4.1でDevContainersサポート追加
参考リンク
用途別推奨
以下の基準で選択してください:
セキュリティ重視
→ Podman
- デーモンレス設計による攻撃面削減
- rootlessモードで権限昇格リスクを最小化
- RHEL/CentOS標準で実績あり
AWS環境での開発
→ Finch
- AWS SAM CLI統合
- AWS公式サポート
- 全プラットフォーム対応