AI総合研究所

SHARE

X(twiiter)にポストFacebookに投稿はてなブックマークに登録URLをコピー

【Claude Code】DevContainerとは?使い方や料金、設定方法を解説

この記事のポイント

  • Anthropic DevContainerを使えば、VS Codeの「Reopen in Container」操作だけでClaude Code開発環境を分単位で構築可能
  • ホワイトリスト方式のファイアウォールで、registry.npmjs.org・api.anthropic.com・GitHub・VS Codeマーケットプレイス等の主要な外部サービスを限定許可(DNS解決・SSH接続など起動・運用に必要な通信は例外として許可)
  • macOS・Windows・Linuxを問わず同一環境を再現できるため、新メンバーのオンボーディングが短縮できる
  • 既存プロジェクトには、devcontainer.jsonに1行追加するだけのDevContainer Feature方式が最も低コスト
  • 信頼できるリポジトリ以外で--dangerously-skip-permissionsを使うべきではない(DevContainerでも認証情報の流出は防げない)
坂本 将磨

監修者プロフィール

坂本 将磨

XでフォローフォローするMicrosoftMVP

Microsoft MVP・AIパートナー。LinkX Japan株式会社 代表取締役。東京工業大学大学院にて自然言語処理・金融工学を研究。NHK放送技術研究所でAI・ブロックチェーンの研究開発に従事し、国際学会・ジャーナルでの発表多数。経営情報学会 優秀賞受賞。シンガポールでWeb3企業を創業後、現在は企業向けAI導入・DX推進を支援。


AnthropicのDevContainerは、Claude Codeの開発環境をチームで統一するための公式リファレンスです。
Node.js 20・Git・zshが事前導入され、ホワイトリスト方式のファイアウォールでアウトバウンド通信を制御するため、セキュリティ要件の厳しい現場でも採用しやすい設計です。

本記事では、4ステップの導入手順から3つの設定ファイルの中身、向き不向きの判断、料金まで2026年最新仕様で整理します。

AI総合研究所では、企業のAI導入支援を行っています。
Claude Codeの本番運用設計についても、お気軽にご相談ください

目次

DevContainerとは?

DockerとDevContainerの関係

Claude Code開発に最適化されたAnthropic DevContainer

AnthropicのDevContainerが解決する3つの開発現場の課題

AnthropicのDevContainerの主な機能

本番想定のNode.js 20環境を最初から使える

ホワイトリスト方式のファイアウォールでアウトバウンド通信を制御

gitやzshなどの開発ツールが標準搭載

VS Code拡張機能と設定の自動セットアップ

コマンド履歴とシェル設定が再起動後も保持される

macOS・Windows・Linuxで同じ環境を再現できる

DevContainerの使い方

前提:必要な環境

1.VS Code拡張機能を準備する

2.Claude Codeリファレンスリポジトリをクローンする

3.VS Codeでプロジェクトを開く

ステップ4:Claude Code開発を始める

AnthropicのDevContainerを構成する3つのファイル

devcontainer.json(コンテナ全体の設定)

Dockerfile(コンテナイメージの定義)

init-firewall.sh(ファイアウォールの初期化)

AnthropicのDevContainerのセキュリティ設計

必要なドメインだけを許可するホワイトリスト方式

デフォルト拒否(Deny by default)の徹底

起動時にファイアウォールルールを自動検証

ホストOSから分離された実行領域

注意点:DevContainerでも防げないリスク

AnthropicのDevContainerをカスタマイズする方法

VS Code拡張機能の追加・削除

CPU・メモリの割り当て調整

許可ドメインの追加(社内ネットワークやGitHub Enterprise対応)

Dockerfileでのツール追加・シェル設定

チームごとのワークフローへの対応

DevContainer Featureで既存プロジェクトにClaude Codeを追加する方法

AnthropicのDevContainerが向いている場面・向かない場面

向いている場面

向かない場面

導入判断で詰まる論点

Anthropic DevContainerと関連ツールの料金

Anthropic DevContainerそのものの料金

Docker Desktopの料金(商用利用時)

VS Code・Claude Codeの料金

AI開発環境の構築経験を業務プロセスのAI化にも活かすなら

まとめ:Claude Code開発でAnthropic DevContainerを使うべき理由

DevContainerとは?

AnthropicのDevContainer(開発コンテナ)は、AIモデル「Claude」のコーディング向けCLIであるClaude Codeを、チームで安全かつ一貫した状態で動かすために用意された公式の開発環境です。

Node.js 20・Git・zsh・ファイアウォールが事前に組み込まれており、Visual Studio Codeで「Reopen in Container」を押すだけで、誰のマシンでも同じ環境を立ち上げられます。

AnthropicのDevContainerとは
Anthropic DevContainerの全体像:ホスト直リスクとコンテナ分離、4つのコア構成要素


Claude Codeはターミナル(黒い画面)からAIエージェントにコード生成・修正を任せられるツールですが、ファイル書き込みやネットワーク通信を伴うため、ホストPCで直接動かすとセキュリティリスクや環境依存トラブルが起きやすいという課題があります。A

nthropic DevContainerは、この課題に「公式が動作確認した、隔離された環境」で応えるリファレンス実装です。

【関連記事】
Anthropicとは?Claudeの特徴・最新動向・料金を解説

AI Agent Hub1

DockerとDevContainerの関係

DevContainerはDocker(コンテナ仮想化技術)の上に成り立つ仕組みで、両者の役割は明確に分かれています。

Dockerが「アプリケーションを動かすためのコンテナを作る基盤」だとすれば、DevContainerは「開発に必要なツール・拡張機能・設定をコードで定義したコンテナ」です。

DockerとDevContainerの関係
DockerとDevContainerの関係:基盤レイヤと開発体験レイヤの分離

Dockerが提供する隔離環境を、開発体験向けにラップしたのがDevContainerだと考えるとわかりやすいです。

具体的には、以下のような開発現場の悩みをコードベースで解消できる仕組みになっています。

  • 動作環境の差異によるバグ
    「自分のPCでは動くのに、レビュー担当者の環境では落ちる」という不毛な調査を、同一コンテナを共有することで防ぎます。

  • 新メンバーの環境構築が長い
    ローカルへのNode.jsインストール・バージョン揃え・拡張機能設定をすべてDevContainer側に押し込めるため、新メンバーのオンボーディング工数を圧縮できます。

  • 試したいライブラリでローカルを汚す
    ローカルのグローバル環境を変えずに、コンテナ内で完結して検証できます。

Claude Code開発に最適化されたAnthropic DevContainer

Anthropic DevContainerは、汎用的なDevContainerの仕組みを使いつつ、Claude Codeを動かすための要素をあらかじめ揃えています。

具体的にはNode.js 20・Git・GitHub CLI・zsh・git-delta・iptables等のネットワーク制御ツールが既定で導入されており、Claude CodeのCLI(claudeコマンド)が初期状態で利用可能です。

Claude Code開発に最適化されたAnthropic DevContainer
Anthropic DevContainerに最初から組み込まれているランタイム・CLI・VS Code拡張のレイヤー構成


加えて、Visual Studio Code側にもAnthropic公式拡張機能(anthropic.claude-code)・ESLint・Prettier・GitLensが自動でインストールされる構成になっており、エディタを開いた瞬間からコードレビューやフォーマットが効きます。
「ツールを揃えて、設定して、動作確認する」という作業を全て公式が肩代わりしてくれる位置付けです。

AnthropicのDevContainerが解決する3つの開発現場の課題

Claude Codeを業務で本格活用しようとすると、開発生産性ではなく「環境とセキュリティ」がボトルネックになりがちです。

Anthropic DevContainerは、現場で頻発する3つの課題に対する公式回答という位置付けで読むと役割が掴みやすくなります。

AnthropicのDevContainerが解決する3つの開発現場の課題
環境差異・オンボーディング工数・権限スキップという3つのボトルネックとDevContainerの解決方針

以下の表で、よく起こる3つの課題と、Anthropic DevContainerによる解決方針を整理します。

課題 起こる場面 DevContainerによる解決
環境差異による不具合 OS・Node.jsバージョン・依存ライブラリの差で「自分の環境だけ動かない」が頻発 Dockerfileで全員のランタイムを統一
オンボーディング工数 新メンバーが環境構築だけで半日〜数日を消費 Reopen in Containerで完結、再現可能
ホストでの権限スキップ --dangerously-skip-permissionsをホストPCで使うと書き換え範囲が広い コンテナ内に隔離してから無人実行


特に重要なのが3つ目の論点です。
Claude Codeはファイル編集やコマンド実行のたびに権限確認を求める設計ですが、本番運用では確認をスキップして自律実行させたい場面が出てきます。
Anthropicは公式ドキュメント上で、「claude --dangerously-skip-permissions」を使う場合は信頼できるリポジトリかつdevcontainer内に限定することを明示的に推奨しています。

ReadyForが公開したClaude Code導入3ヶ月後の社内アンケートでは、利用メンバーの83%が生産性向上を実感し、66%が1日1〜2時間の時間短縮を達成したと報告されています。

一方で、複数の文脈を行き来するコンテキストスイッチの増加も課題として挙げられており、「効果は大きいが、管理層がガードレールを敷かないと暴走しやすい」というのが現場感です。まずdevcontainerで環境を縛ってから本格導入に進むのが、シャドーAI化を避ける現実的なステップになります。


AnthropicのDevContainerの主な機能

ここからは、Anthropic DevContainerが標準で提供している機能を、初心者にも判断しやすい粒度で6つに分けて解説します。

Anthropic公式のClaude Code Docs(開発コンテナ)に記載されている内容を、実装ファイル(Dockerfile / devcontainer.json)と突き合わせて整理しました。

AnthropicのDevContainerの主な機能
標準提供される6つの主要機能(ランタイム・ファイアウォール・ツール・拡張・永続化・OSポータビリティ)

本番想定のNode.js 20環境を最初から使える

DockerfileのベースイメージはNode.js 20で、Claude Code CLIを含む主要な開発依存パッケージが事前インストールされています。
Claude CodeはNode.js上で動くCLIなので、ローカルにNode.jsを入れていないマシンでも、コンテナを開いた瞬間から本番に近い構成で開発を始められます。

「ローカルのNode.jsバージョンが古くて動かない」「nvmで切り替えたら他のプロジェクトが壊れた」といった事故を、DevContainer側にバージョンを閉じ込めることで根本的に防げる構造です。

ホワイトリスト方式のファイアウォールでアウトバウンド通信を制御

コンテナ内からの外部通信は、起動時に走るinit-firewall.shが、ホワイトリストで主要な外部サービスを限定許可しつつ、それ以外を既定で拒否する形に設定します。

許可リストにはregistry.npmjs.org・api.anthropic.com・statsig.anthropic.com・GitHub関連(api.github.com等)・Sentry・VS Codeマーケットプレイス等が含まれ、加えてDNS解決やSSHなど起動・運用上必要な通信は例外として許可されます。

ホワイトリスト方式のファイアウォール
許可ドメインだけ通すホワイトリスト構造とブロック対象の関係


意図しない外部サーバーへの通信や、未知のサードパーティへの情報送信を未然に止めるため、Claude Codeに業務コードを読ませる現場では大きな安心材料になります。

gitやzshなどの開発ツールが標準搭載

Dockerfileには、開発体験を底上げする標準ツールがあらかじめインストールされています。

具体的に何が入っているのかを確認しておくと、自分でDockerfileを手書きする手間と漏れが避けられます。

gitやzshなどの開発ツールが標準搭載
Dockerfileに事前同梱されている主要ツールのカテゴリ別マップ

  • git / gh(GitHub CLI)
    バージョン管理とPR操作をコンテナ内で完結

  • zsh + powerline10k + fzf
    補完・履歴検索・プロンプト表示を効率化

  • git-delta
    diff表示を読みやすく整形

  • iptables / ipset / iproute2 / dnsutils
    init-firewall.shが使うネットワーク制御ツール

  • jq / unzip / less / man-db
    ログ・設定ファイル・APIレスポンスの取り回しを楽にする小道具

これらがNode.js 20と同居しているため、CIに近い環境で「読む・書く・送る」を一気通貫でこなせます。

VS Code拡張機能と設定の自動セットアップ

devcontainer.jsonには、コンテナを開いた瞬間にVS Code拡張機能が自動インストールされる設定が入っています。

具体的にはAnthropic公式のClaude Code拡張機能・ESLint・Prettier・GitLensの4つで、保存時の自動フォーマット・自動Lint修正もデフォルトで有効です。

VS Code拡張機能と設定の自動セットアップ
devcontainer.jsonで自動導入される4つのVS Code拡張機能


「全員に同じ拡張機能・同じ設定を入れさせる」という地味で大事な作業を、コードレビュー対象のファイル1つで完結できる構造になっています。

コマンド履歴とシェル設定が再起動後も保持される

Anthropic DevContainerはbash/zsh履歴とClaude設定(/home/node/.claude)を、devcontainerIDごとの名前付きDockerボリュームにマウントします。

コンテナを停止・再起動しても、コマンド履歴・補完候補・Claude Codeの認証情報やセッション状態がそのまま戻ってくるため、作業の中断・再開がスムーズです。

「再起動するたびにログインし直す」「履歴が消えて再現コマンドを探せない」といった摩擦を、ボリューム永続化で減らしています。

macOS・Windows・Linuxで同じ環境を再現できる

DockerとVS Codeが動く環境であれば、ホストOSに依存せず同じコンテナ内容を立ち上げられます。

Apple Silicon・Intel Mac・Windows・Linuxのどれでも、リポジトリのクローンと「Reopen in Container」だけで完了します。

OS固有の差異(パスの区切り文字、改行コード、シェルの挙動)に振り回される時間を、コンテナ内に閉じ込めることでチーム全体から取り除ける利点があります。


DevContainerの使い方

ここからは、実際にAnthropic DevContainerを使ってClaude Code開発を立ち上げる手順を、初心者がそのままなぞれる粒度で4ステップに分けて解説します。

詳しい解説は公式のClaude Code Docs(開発コンテナ)にも記載されていますが、以下では実務で詰まりやすいポイントも織り交ぜています。

AnthropicのDevContainerを4ステップで始める
拡張機能準備→クローン→Reopen in Container→Claude起動という4ステップフロー

前提:必要な環境

着手前に、ローカルPC側で以下を整えておく必要があります。「VS CodeとDockerが動いていること」が大前提です。

前提:必要な環境
Anthropic DevContainerを動かすために最低限必要な3つのソフトウェア要件

  • Visual Studio Code(最新版推奨)
    公式サイトから無料で入手可能

  • Docker Desktop(macOS / Windows)または Docker Engine(Linux)
    コンテナ実行基盤。商用利用時は有償ライセンスが必要になる場合あり

  • Dev Containers 拡張機能(Microsoft)
    VS Codeから直接コンテナを開くために必要。SSH等のリモート開発もまとめて使うなら、Dev Containersを内包する「Remote Development拡張パック」を入れる選択肢もある

まだ未インストールの場合は、Docker公式サイトVS Code公式サイトから先に入れておきます。

1.VS Code拡張機能を準備する

VS Codeを起動し、左サイドバーの拡張機能アイコンから「Dev Containers」を検索してインストールします。

SSHやWSLとあわせて使う場合は、Dev Containersを内包する「Remote Development」拡張パックを入れる方法もあります。これによりVS Codeから直接コンテナの起動・操作ができるようになります。

Remote Developmentのインストール
Dev Containers / Remote Development のインストール画面

2.Claude Codeリファレンスリポジトリをクローンする

Anthropicが公開しているClaude Code開発環境のリファレンスリポジトリを、ローカルにコピーします。
任意の作業ディレクトリで以下を実行します。

ターミナルでの実行イメージ
ターミナルでの実行イメージ

git clone https://github.com/anthropics/claude-code.git

このリポジトリのルートに「.devcontainer/」フォルダが含まれており、Dockerfile・devcontainer.json・init-firewall.shの3点セットが揃った状態で取得できます。自社プロジェクトに移植する場合は、この「.devcontainer/」フォルダを丸ごとコピーします。

3.VS Codeでプロジェクトを開く

クローンしたフォルダをVS Codeで開きます。
「.devcontainer/」が認識されると、画面右下に「Reopen in Container」ポップアップが表示されるので、そのままクリックします。

Dev Containersコマンドパレット
Dev Containers: Reopen in Container をコマンドパレットから実行


クリック後、VS Codeが自動でDockerイメージをビルドし、コンテナを起動して接続します。初回は数分(PC性能・回線速度により5〜15分程度)かかりますが、2回目以降はキャッシュが効くため数十秒で立ち上がります。

ステップ4:Claude Code開発を始める

コンテナ内に入ると、Node.js 20・git・zshが揃った状態のターミナルが利用できます「claude」コマンドが既に通っているので、初回はAnthropicのアカウントで認証してから作業を始めます。

Claude Codeの画面
Claude Codeの画面

Anthropic DevContainerは、Claude CLIの権限確認を「--dangerously-skip-permissions」でスキップする想定で設計されており、コンテナ内ではAIエージェントに自律的にコマンドを実行させやすくなっています。ただし、これはコンテナの隔離とファイアウォールが効いていることが前提です。

コンテナを使わずホスト側で同フラグを使うのは、リスクが大きく避けるべき操作です。

なお、認証情報の永続化や回数制限の挙動は、Claude Codeの料金体系ガイドClaude Codeの回数制限に整理しています。料金プランで使える範囲が変わるため、本格運用前に一度確認しておくのが安全です。

AnthropicのDevContainerを構成する3つのファイル

Anthropic DevContainerの中身は、3つのファイルだけで構成されています。

「コンテナの設定」「コンテナの中身のレシピ」「ネットワークの守り方」という役割で読み解くと、自社用にカスタマイズする際の判断が早くなります。

AnthropicのDevContainerを構成する3つのファイル
devcontainer.json・Dockerfile・init-firewall.shが担う3つの役割の俯瞰図

以下の表で、3ファイルの役割と編集する場面を整理します。

ファイル 役割 編集する場面
devcontainer.json コンテナ全体の設定(拡張機能・マウント・runArgs等) 拡張機能を追加、メモリ上限を上げる、Featureを足す
Dockerfile コンテナイメージのレシピ(OS・パッケージ・ユーザー) Pythonを足す、別バージョンのNode.jsに切り替える
init-firewall.sh ファイアウォール初期化スクリプト 社内ドメイン・GitHub Enterpriseを許可する

「何を変えるか」が決まれば、触るファイルは1つに絞れる構造です。各ファイルを順に見ていきます。

devcontainer.json(コンテナ全体の設定)

devcontainer.jsonは、VS Codeに「どのコンテナをどう開くか」を伝える設定ファイルです。Anthropic公式のdevcontainer.jsonでは、以下のような項目が定義されています。

devcontainer.json(コンテナ全体の設定)
devcontainer.jsonに含まれる主要キー(build / customizations / mounts / runArgs / postStartCommand / remoteUser)

  • build.dockerfile
    同階層のDockerfileを参照

  • customizations.vscode.extensions
    anthropic.claude-code・ESLint・Prettier・GitLensの4つを自動インストール

  • mounts
    名前付きDockerボリュームでbash履歴とClaude設定(/home/node/.claude)を永続化

  • runArgs
    「--cap-add=NET_ADMIN」と「--cap-add=NET_RAW」でiptablesを使えるようにする

  • postStartCommand
    コンテナ起動後にinit-firewall.shを実行

  • remoteUser
    nodeユーザー(非root)でログイン

devcontainer.jsonはあくまで「コンテナの開発環境定義」に集中させ、Claude Code側の挙動(モデル選択・ツール権限・MCP接続等)はClaude Codeの設定(settings.json)完全ガイドに整理されている設定キーで定義すると、責務がきれいに分かれて運用しやすくなります。

簡略化したイメージは以下のようになります(実ファイルにはbuild引数等が追加されています)。

{
  "name": "Claude Code DevContainer",
  "build": { "dockerfile": "Dockerfile" },
  "customizations": {
    "vscode": {
      "extensions": [
        "anthropic.claude-code",
        "dbaeumer.vscode-eslint",
        "esbenp.prettier-vscode",
        "eamodio.gitlens"
      ]
    }
  },
  "mounts": [
    "source=claude-code-bashhistory-${devcontainerId},target=/commandhistory,type=volume",
    "source=claude-code-config-${devcontainerId},target=/home/node/.claude,type=volume"
  ],
  "runArgs": ["--cap-add=NET_ADMIN", "--cap-add=NET_RAW"],
  "postStartCommand": "sudo /usr/local/bin/init-firewall.sh",
  "remoteUser": "node"
}


ポイントは、ファイアウォールを動かすためにrunArgsで「NET_ADMIN」と「NET_RAW」を付与している点と、postStartCommandをsudoで叩いている点です。

この2行を消すと、ホワイトリスト制御が効かなくなるため、安易にコメントアウトしないように注意が必要です。

Dockerfile(コンテナイメージの定義)

Dockerfileは、コンテナの中身を定義するレシピファイルです。

Anthropic公式のDockerfileでは、「node:20」をベースにgit・gh・zsh・vim・nano・iptables・ipset・iproute2・dnsutils・fzf・jq等を導入し、git-delta 0.18.2をバイナリインストールしています。

Dockerfile(コンテナイメージの定義)
Dockerfileがレイヤー単位で積み上げるベースイメージ・パッケージ・グローバルインストールの構造

FROM node:20

ARG TZ=UTC
ENV TZ=${TZ}

RUN apt-get update && apt-get install -y \
    git gh gnupg2 zsh vim nano \
    iptables ipset iproute2 dnsutils \
    fzf jq unzip procps less man-db

RUN npm install -g @anthropic-ai/claude-code

USER node
WORKDIR /workspace


ポイントはClaude CodeのCLIをグローバルインストールしていることと、コンテナ実行ユーザーをnode(非root)に切り替えていることです。

非rootで動かすことでコンテナ内の権限事故を抑えつつ、必要なときだけsudoでinit-firewall.shを叩く構造になっています。Pythonや別言語のランタイムを混ぜたい場合は、ここに「apt-get install python3 python3-pip」などを足すのが起点です。

init-firewall.sh(ファイアウォールの初期化)

init-firewall.shは、コンテナ起動直後にiptablesを使ってアウトバウンド通信を制御するシェルスクリプトです。

先頭で「set -euo pipefail」を宣言し、エラー時に即終了する堅い書き方になっています。

init-firewall.sh(ファイアウォールの初期化)
デフォルト拒否→必須通信許可→ホワイトリスト追加→動作確認という4段階の初期化フェーズ

#!/bin/bash
set -euo pipefail

# 既定のポリシーを「拒否」にする
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# DNS(UDP 53)と確立済みSSH(TCP 22)、ループバックを許可
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# 必要なドメインだけをホワイトリストで許可
for DOMAIN in registry.npmjs.org api.anthropic.com api.github.com \
              statsig.anthropic.com sentry.io \
              marketplace.visualstudio.com update.code.visualstudio.com; do
  iptables -A OUTPUT -d "$(dig +short "$DOMAIN" | tail -n1)" -j ACCEPT
done

# 動作確認:example.comには到達できないこと、GitHub APIには到達できることを検証


許可ドメインはGitHub・npmレジストリ・Anthropic API・VS Codeマーケットプレイス・Sentry等で、これらに加えてDNS解決やSSHなど起動・運用に必要な通信は例外許可されますが、それ以外の宛先は遮断されます。
社内のGitHub Enterpriseや独自ミラーを使う環境では、このループに自社ドメインを追記するのが標準的なカスタマイズです。

「許可リスト+デフォルト拒否+起動時の動作確認」という三段構えで、設定漏れによる事故を起こりにくくする設計になっています。

AnthropicのDevContainerのセキュリティ設計

Anthropic DevContainerのセキュリティは、ファイアウォールだけで成立しているわけではありません。「通信先を必要サービスに限定する」「許可リストから外れた宛先はデフォルトで拒否する」「設定漏れを起動時に検知する」「ホストOSのシステム領域からは一定程度分離する」という4つの観点が組み合わさった設計です。

一方で、ローカルリポジトリはbind mountされ、「--dangerously-skip-permissions」使用時には許可ドメイン経由での認証情報流出リスクが残るため、運用は trusted repo に限定する前提が必要になります。

AnthropicのDevContainerのセキュリティ設計
ホワイトリスト・デフォルト拒否・起動時検証・ホストOS分離の4層で守るセキュリティアーキテクチャ


以下、それぞれを順に解説します。

必要なドメインだけを許可するホワイトリスト方式

コンテナ内からの外部通信は、init-firewall.shのホワイトリストで主要な外部サービスを限定許可する設計です。

registry.npmjs.org・api.anthropic.com・api.github.com・marketplace.visualstudio.com・statsig.anthropic.com・sentry.ioなどがデフォルトの許可対象で、これに加えてDNS解決やSSH接続など起動・運用に必要な通信は例外として通します。

一方で、許可リストや例外に該当しない宛先(個人のSNS・未知のホスティング・PoC段階のSaaS等)への通信は遮断されます。

「コードを読ませているうちに、何かが外部に送信される」リスクをアーキテクチャレベルで止められるのが利点です。

デフォルト拒否(Deny by default)の徹底

iptablesの既定ポリシーがINPUT/OUTPUT/FORWARDの全方向でDROPに設定されており、明示的な許可ルール以外はすべて拒否されます。

「なんとなく通っているけど、なぜ通っているかわからない」という状態を排除し、許可リストに名前のあるものだけが通る構造にしています。

万が一コンテナ内で意図しないコードが動いた場合でも、未知のC&Cサーバーへの接続や情報持ち出しを物理的に遮断できる点が、このポリシーの最大の価値です。

起動時にファイアウォールルールを自動検証

init-firewall.shは、ルール適用後に「example.comに到達できないこと」「GitHub APIに到達できること」を実際に通信して検証する処理を含みます。設定だけ書かれていて実際は適用されていない、という事故を起動時に検出できます。

起動時にファイアウォールルールを自動検証
ルール適用→ブロック確認→許可確認→失敗時はコンテナ起動を停止という自己検証フロー


スクリプトは「set -euo pipefail」で書かれているため、CIDR形式のチェック・DNS解決・GitHub APIレスポンスのいずれかで失敗するとコンテナ起動も止まる仕組みです。「設定漏れに気づかないまま、ガードレールがないと思って運用していた」という最悪パターンが構造的に発生しません。

ホストOSから分離された実行領域

DevContainerはDockerコンテナ上で動くため、ホストOSのプロセスやシステム領域からはコンテナが一定程度分離されます。

一方で、Anthropic公式の「devcontainer.json」はworkspaceMountでローカルの作業ツリーをコンテナ内に直接バインドマウントしているため、コンテナ内でのファイル編集・削除・git操作は、そのままホスト側のローカルリポジトリに反映される点には注意が必要です。「

ホストOS全体への被害は抑えられるが、作業中のリポジトリは隔離されない」というのが正確な理解です。

ホストOSから分離された実行領域
ホストOSとコンテナの分離関係と、bind mountで例外的に共有される作業ツリーの位置づけ


特にClaude Codeを「--dangerously-skip-permissions」で動かすときは、この限定的な分離が前提条件になります。コンテナを使わずに同じフラグをホストで使うのは、Anthropic自身が公式ドキュメントで推奨していない使い方です。

注意点:DevContainerでも防げないリスク

最後に、Anthropic公式がClaude Code Docs(開発コンテナ)で明示している重要な但し書きを共有します。DevContainerの分離とホワイトリストは強力ですが、すべての攻撃に耐えられる訳ではありません。

DevContainerでも防げないリスク
許可ドメイン経由の認証情報持ち出し・悪意あるリポジトリ実行など、ガードレール外に残る代表的リスク

具体的に、「--dangerously-skip-permissions」で実行している場合は、悪意のあるリポジトリ(信頼できないコード)がコンテナ内のClaude Code認証情報を盗み出すことを防げません。

許可ドメインの中(npm・GitHub等)を通じた情報持ち出しは、ファイアウォールでは検知できないからです。

そのため運用ルールとしては、以下を最低ラインで守ることが推奨されます。

  • 信頼できるリポジトリでのみdevcontainerを使用する
  • Claude Codeと依存パッケージを最新バージョンに保つ
  • コンテナの実行ログを定期的に確認する
  • 本番運用環境では、Claude Codeの利用ポリシーを別途整備する(Claude Codeの企業利用ガイドが参考になります)

【関連記事】
Claude Code Securityとは?機能や使い方を徹底解説

AI研修


AnthropicのDevContainerをカスタマイズする方法

Anthropic DevContainerは、標準構成のままでも実用できる完成度ですが、自社のコードベース・ネットワーク・チーム文化に合わせてカスタマイズするとさらに価値が上がります。

「どのファイルを触るとどう変わるか」が分かっていれば、初学者でも事故なく改造できます。

AnthropicのDevContainerをカスタマイズする方法
VS Code拡張・リソース・許可ドメイン・Dockerfile・チームテンプレートという5つのカスタマイズ軸

ここでは、現場で頻度の高い5つのカスタマイズパターンを解説します。

VS Code拡張機能の追加・削除

devcontainer.jsonの「customizations.vscode.extensions」に拡張機能IDを追記すれば、コンテナを開いた全員に自動インストールできます。Pythonを扱う場合や、GitHub PRワークフローを強化したい場合は以下のように追加します。

VS Code拡張機能の追加・削除
標準4拡張に加えて追加されやすいPython・PR連携・Docker補助系の拡張機能リスト

"extensions": [
  "anthropic.claude-code",
  "dbaeumer.vscode-eslint",
  "esbenp.prettier-vscode",
  "ms-python.python",
  "github.vscode-pull-request-github"
]


現場でよく追加されるのは、Python開発用の「ms-python.python」、GitHub PR連携を強化する「github.vscode-pull-request-github」、コンテナ操作を補助する「ms-azuretools.vscode-docker」あたりです。

チーム共有のVS Code設定をdevcontainerで配布できる、と捉えると活用範囲が広がります。

CPU・メモリの割り当て調整

Docker Desktopを使っている場合は、Docker Desktop > Settings > Resourcesから、コンテナに割り当てるCPUコア数・メモリ・ディスクを調整できます。

Claude Codeに大規模リポジトリを読ませる場合や、複数コンテナを同時起動する場合は、メモリ8GB以上を割り当てるのが現実的です。

「VS Codeが重くなる」「コンパイルが遅い」と感じたら、ホスト側の搭載メモリではなく、Docker Desktopに割り当てた量を最初に確認するのが定石です。

許可ドメインの追加(社内ネットワークやGitHub Enterprise対応)

社内のGitHub Enterprise・社内Pypi/npmミラー・社内SSO等を使う環境では、init-firewall.shに許可ドメインを追記します。

具体例は以下のとおりです。

許可ドメインの追加
社内環境で追加が必要になる代表的なドメインカテゴリと運用ルールの分担

for DOMAIN in registry.npmjs.org api.anthropic.com \
              github.company.internal \
              npm.company.internal \
              auth.company.internal; do
  iptables -A OUTPUT -d "$(dig +short "$DOMAIN" | tail -n1)" -j ACCEPT
done


セキュリティチームと連携する場合は、「最小限の必要ドメインだけを足す」「足したドメインの管理表を別ファイルで持つ」「年1回見直す」あたりをルール化すると、許可リストの肥大化を防げます。

Dockerfileでのツール追加・シェル設定

Dockerfileを編集することで、Pythonランタイムの追加・zshプラグインの導入・社内独自ツールのインストール等ができます。

一例として、Python環境とzsh補完プラグインを追加するパターンは以下のようになります。

Dockerfileでのツール追加・シェル設定
Dockerfileで追加されやすいランタイム・シェルプラグイン・社内ツールの分類

RUN apt-get update && apt-get install -y python3 python3-pip
RUN git clone https://github.com/zsh-users/zsh-autosuggestions \
    /home/node/.zsh/zsh-autosuggestions


「Dockerfileに何を入れるか」は、Claude Codeに何を扱わせたいかで決まります。

データ分析系を任せるならPython・Jupyter、Goサービスを任せるならgolang・goimports、というように、AIに渡す責務に合わせて足し引きする発想です。

チームごとのワークフローへの対応

組織内で複数チームが別々の技術スタックを持つ場合は、devcontainer.json(と必要に応じてDockerfile)をチーム別にコピーして使い分けるのが現実的です。

例えば以下のような分け方が考えられます。

チームごとのワークフローへの対応
Web・データ基盤・インフラなどチーム別に分岐するDevContainerテンプレートの構造

チーム 主な追加 想定する用途
Webアプリチーム Node.js系拡張・Vitest対応設定 Next.js / Remixの開発
データ基盤チーム Python・dbt・SQL拡張 データパイプライン整備
インフラチーム Terraform・kubectl・gh IaCとクラスタ運用

devcontainer設定を「テンプレート群」として捉え直すと、Claude Codeに与えるコンテキストもチームごとにフィットさせやすくなります。CLAUDE.mdを併用すれば、コンテナごとの暗黙ルールをClaudeに認識させられます(CLAUDE.mdとは?書き方やメモリ管理を徹底解説を参照)。

さらにテスト前の自動セットアップやコミット時の検証を組み込みたい場合は、Claude Code Hooksを活用すると、コンテナ内の処理にClaude Codeの実行イベントをフックできます。


DevContainer Featureで既存プロジェクトにClaude Codeを追加する方法

ここまでは、Anthropic公式リポジトリの「.devcontainer/」一式をコピーする方式を扱ってきました。

一方、すでにDevContainerで開発しているチームには、devcontainer.jsonに1行追加するだけでClaude Code CLIを導入できる「DevContainer Feature」方式が用意されています。

DevContainer Featureで既存プロジェクトにClaude Codeを追加する方法
既存DevContainerにFeatureを1行追加するだけでClaude Code CLIが組み込まれる仕組み

DevContainer Featureとは、DevContainerに対して「特定のツールやランタイムを後付けする」ための公式仕様で、Anthropicはclaude-code Featureを公開しています。

Anthropic DevContainerの一式を移植する負担なく、既存環境にClaude Codeだけを追加できる点がメリットです。

最小構成のdevcontainer.jsonは以下のようになります。

{
  "image": "mcr.microsoft.com/devcontainers/typescript-node:20",
  "features": {
    "ghcr.io/devcontainers/features/node:1": {},
    "ghcr.io/anthropics/devcontainer-features/claude-code:1": {}
  }
}


ポイントは2つあります。
1つ目は、Claude Code FeatureがNode.jsとnpmに依存するため、Node.jsを含むベースイメージを使うか、「devcontainers/features/node」を併記するのが推奨であるということ。

これらが未導入でもFeature側のinstall.shがNode.jsの自動インストールを試みますが、明示的に揃えておく方がビルド時間と再現性の面で有利です。

2つ目は、Featureはあくまでツール追加であり、Anthropic公式リポジトリに含まれるinit-firewall.shのようなセキュリティガードレールは付いてこないため、ネットワーク制御は別途自前で設計する必要があるということです。

「既存DevContainerは活かしたい、Claude Codeだけ載せたい」場合はFeature方式が最短ルート、「公式の隔離・ファイアウォール設計までまとめて使いたい」場合はリファレンスリポジトリ方式が安全、という使い分けになります。


AnthropicのDevContainerが向いている場面・向かない場面

Anthropic DevContainerは万能ツールではなく、適している現場と、別解の方が良い現場が分かれます。SIerとしてプロジェクトを伴走している立場から見ると、適合可否は組織の成熟度よりも「Claude Codeをどう使うか」「セキュリティ要件をどう設計するか」で決まります

AnthropicのDevContainerが向いている場面・向かない場面
向いている5つの場面と向かない4つの場面の対比

以下、向き・不向きと、特に判断が割れやすい論点を整理します。

向いている場面

以下の表は、Anthropic DevContainerを採用すると効果が出やすい典型的なケースをまとめたものです。

場面 効果
Claude Codeを複数人で使うチーム 環境差異の除去とオンボーディング短縮
信頼できるリポジトリで自律実行を回したい --dangerously-skip-permissionsの残留リスクを構造的に下げられる(trusted repo限定)
セキュリティ要件が明確(金融・医療・公共系) ホワイトリストで通信先を監査可能
新メンバーが多い・離脱が多い 環境構築工数を最小化できる
WindowsとMacが混在するチーム OS差異をコンテナ内に閉じ込められる

特に、複数案件を抱えるSIerや受託開発企業では、案件ごとの認証情報や依存パッケージをコンテナで分離できるため、情報漏洩リスクの抑制と切り替え工数の削減を同時に実現できる点が大きいです。

さらに、複数のClaude Codeエージェントを役割分担させて並走させる構成(Claude Code Agent Teams)と組み合わせれば、レビュー・実装・調査を別コンテナで並列に走らせる運用にもスムーズに広げられます。

向かない場面

逆に、以下のような状況ではDevContainerが本来の効果を発揮しにくいか、別解の方が合理的です。

  • 個人開発で1人しか使わない
    チーム共有のメリットがないため、ローカル直実行で十分な場合が多い

  • Docker Desktopの有償サブスクリプション予算が確保できない
    Docker Desktopは従業員250名超または年商1,000万ドル超の組織では無料枠で使えず、Pro / Team / Business のいずれかの有償サブスクリプションが必要。
    代替(Docker EngineやPodman Desktop)の検証コストを許容できるかが論点

  • GUI操作が中心の開発(モバイルアプリ・組み込み)
    DevContainerはCLI/Web中心のワークフロー向き。シミュレータや実機接続が前提なら効果が薄い

  • 既にDevContainerで運用中で、ファイアウォール要件がない
    Feature方式(H2#8参照)でClaude Codeだけ追加する方が低コスト

導入判断で詰まる論点

導入判断で詰まる論点
PoC前に社内合意が必要になる3つの論点(権限スキップ・許可ドメイン管理・Dockerライセンス)

実際の導入プロジェクトでは、以下の3点で判断が止まりがちです。先回りして社内合意を取っておくと、PoCから本番まで迷わず進めます。

  • 権限スキップ(--dangerously-skip-permissions)の許容範囲
    1つ目は、「--dangerously-skip-permissions」をどこまで許すかという論点です。
    DevContainerが入っていれば技術的には安全側に倒せますが、組織のセキュリティポリシーが「あらゆるコマンドの権限スキップ」を禁じている場合、ポリシー側の改定が必要になります。

  • ファイアウォール許可ドメインの管理責任
    2つ目は、ファイアウォール許可ドメインの管理責任です。誰がドメイン追加を承認するか、追加履歴をどこに残すか、レビュー周期を年何回にするかを決めずに運用すると、いつの間にか許可リストが肥大化します。

  • Docker Desktopのライセンス選定
    3つ目は、Docker Desktopのライセンスです。商用利用条件に該当する組織では、Podman DesktopやRancher Desktopへの移行検証を並行して走らせるか、Docker の有償サブスクリプション(Pro / Team / Business のいずれか)を契約するかの判断になります。
    座席数や管理要件(SSO / イメージスキャン / 集中管理)に応じて適切なプランを選ぶ前提です。

「DevContainerは技術選定であると同時に、ライセンス選定でもある」という認識でPoCに入ると、後戻りが減ります。

メルマガ登録


Anthropic DevContainerと関連ツールの料金

Anthropic DevContainerを実運用するには、DevContainer単体ではなく周辺ツールも含めた費用感を押さえておく必要があります。

「無料で使える部分」と「有償ライセンスが要る部分」を分けて整理することが、稟議を通す近道です。

Anthropic DevContainerと関連ツールの料金
DevContainer本体・Docker Desktop・Claude Codeの3段で押さえる料金構造(2026年4月時点)


以下、構成要素ごとに2026年4月時点の料金体系を整理します。

Anthropic DevContainerそのものの料金

Anthropic公式リポジトリの「.devcontainer/」一式は、anthropics/claude-codeに含まれるリファレンス実装で、ライセンスは「All rights reserved」かつAnthropicのCommercial Terms / Consumer Terms(利用規約)に従う形で公開されています。

Claude Code本体と同じ利用条件枠で扱う前提となるため、二次配布や改変公開を行う際は最新の利用規約を確認しておく必要があります。

一方、DevContainer Feature(anthropics/devcontainer-features)はMITライセンスで公開されており、無償で利用・改変・再配布が可能です。

「リファレンス実装一式(claude-code リポジトリ)」と「Feature 単体」でライセンス条件が分かれている点は、社内配布や改変運用を検討する場合に押さえておきたいポイントです。

Docker Desktopの料金(商用利用時)

Docker Desktopは個人利用・小規模利用は無料ですが、大企業の商用利用には有償ライセンスが必要です。

2026年4月時点のDocker公式の料金体系では、以下のプランが提供されています。

Docker Desktopの料金
Personal / Pro / Team / Business 4プランの月額・対象規模・主要機能の比較

プラン 月額(年契約) 想定対象
Personal $0 個人開発・小規模事業者
Pro $9/ユーザー 個人プロ・スタートアップ
Team $15/ユーザー チーム開発(〜100名)
Business $24/ユーザー 企業(SSO・集中管理・イメージスキャン等のガバナンス機能が必要な場合)


特に注意すべきは、従業員250名超または年商1,000万ドル超の組織で商用利用する場合、無料枠(Personal)では利用できず、Pro / Team / Business のいずれかの有償サブスクリプション契約が必要になる点です(2026年4月時点)。

座席数・管理要件に応じてプランを選ぶ前提のため、「Business 一択」ではありません。代替手段としては、Docker Engine単体(Linux)やPodman Desktop、Rancher Desktopが選択肢になります。

VS Code・Claude Codeの料金

Visual Studio Codeは無償で利用可能です。
必須となるDev Containers拡張機能(およびそれを含むRemote Development拡張パック)・Anthropic公式拡張機能(anthropic.claude-code)も追加費用なしで利用できます。

一方、Claude Code本体は利用するモデルとプランに応じて課金が発生します。
簡単な目安としては、個人検証ならPro($20/月)、本格運用ならMax 5x($100/月)またはMax 20x($200/月)、組織導入ならClaude Code for EnterpriseとAPI課金の併用、という選び分けが現場の標準です。

つまり、DevContainer自体は無料、Docker Desktopは規模次第で有償、Claude CodeはAI推論にかかる利用料という3段構成で見積もるのが、コスト構造としては正確な捉え方になります。


AI開発環境の構築経験を業務プロセスのAI化にも活かすなら

DevContainerで「安全で再現可能な開発環境を構築する」設計思想は、業務システムにAIを組み込む際にも重要な考え方です。環境の分離・アクセス制御・構成の標準化といった原則は、業務AIの導入でもそのまま適用できます。

AI総合研究所のAI業務自動化ガイドでは、セキュリティと運用性を両立しながら業務プロセスをAI化するためのステップと、領域ごとの適用パターンを整理しています。開発環境構築のノウハウを業務全体のAI化に広げる参考としてご活用ください。

AI開発環境の知見を業務全体のAI化に活かす

AI業務自動化ガイド

コンテナ化された開発環境から業務自動化へ

DevContainerで構築した安全なAI開発環境の設計思想は、業務プロセスへのAI適用にも通じます。セキュリティと効率を両立した業務AI化の進め方を整理したガイドです。


まとめ:Claude Code開発でAnthropic DevContainerを使うべき理由

Anthropic DevContainerは、Claude Codeの開発環境を「全員が同じ条件で・安全に・短時間で」立ち上げるための公式リファレンスです。本記事の主要ポイントを最後に整理します。

  • Reopen in Containerだけで分単位の環境構築
    Node.js 20・git・zsh・拡張機能・設定が事前定義され、新メンバーのオンボーディングが大きく短縮できる

  • ホワイトリスト方式の多層防御
    init-firewall.shでGitHub・npm・Anthropic API・VS Codeマーケットプレイス等の主要サービスを限定許可し、DNS解決・SSHなど起動・運用に必要な通信は例外許可、それ以外を拒否する設計

  • --dangerously-skip-permissionsの残留リスクを構造的に下げる
    ホストOSのプロセス・システム領域からは分離されるが、ローカルrepoは直接マウントされるため、trusted repo限定で運用する前提は変わらない

  • 既存環境にはFeature方式で1行追加
    ghcr.io/anthropics/devcontainer-features/claude-code:1で、現行DevContainerに最小コストで載せられる

  • コストはDevContainer Feature側(MIT・無料)、Docker Desktop、Claude Codeの3点で決まる
    組織規模次第でDocker の有償サブスクリプション(Pro / Team / Business のいずれか)が必要、Claude Codeはプラン課金

特に、複数案件を抱えるSIerや、Claude Codeをチームで本格運用したい組織にとって、Anthropic DevContainerは「PoCから本番までブレない環境を提供する」基盤として強く推奨できます。Claude Code導入の最初の一歩としても、既存DevContainer運用を底上げする手段としても、検討する価値は十分にあります。

Anthropic DevContainerの導入支援やClaude Codeの本番運用設計について、AI総合研究所では企業のAI導入を伴走しています。現場の事情に合わせた設計が必要な場合は、ぜひお気軽にご相談ください

監修者
坂本 将磨

坂本 将磨

Microsoft MVP・AIパートナー。LinkX Japan株式会社 代表取締役。東京工業大学大学院にて自然言語処理・金融工学を研究。NHK放送技術研究所でAI・ブロックチェーンの研究開発に従事し、国際学会・ジャーナルでの発表多数。経営情報学会 優秀賞受賞。シンガポールでWeb3企業を創業後、現在は企業向けAI導入・DX推進を支援。

関連記事

AI導入の最初の窓口

お悩み・課題に合わせて活用方法をご案内いたします
お気軽にお問合せください

AI総合研究所 Bottom banner

ご相談
お問い合わせは
こちら!