3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dev Container CLIで使える代替コンテナエンジンと設定方法

Posted at

先に結論だけ

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 up
  • devcontainer build
  • devcontainer exec
  • devcontainer 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は、セキュリティを重視する環境に最適なコンテナエンジンです。

主な特徴

  1. デーモンレス設計
    • 中央のデーモンプロセスが存在しない
    • 単一障害点(SPOF)を排除
    • 各コンテナーが独立プロセスとして実行
  2. ネイティブRootlessモード
    • デフォルトでroot権限不要
    • ユーザー名前空間による完全な分離
    • コンテナー脱出攻撃でもroot権限取得不可
  3. 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 .

動作確認済み

参考リンク

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文字制限)

動作確認済み

参考リンク

用途別推奨

以下の基準で選択してください:

セキュリティ重視

Podman

  • デーモンレス設計による攻撃面削減
  • rootlessモードで権限昇格リスクを最小化
  • RHEL/CentOS標準で実績あり

AWS環境での開発

Finch

  • AWS SAM CLI統合
  • AWS公式サポート
  • 全プラットフォーム対応

参考リンク

公式ドキュメント

コンテナエンジン

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?