【デブコンテナ】

Dev Container とは?

最終更新:
💡 「自分のPCでは動くのに…」を減らす、開発環境の設計図

devcontainer.jsonという設定ファイルで、コンテナを開発環境として使えるようにする仕組み。チームで同じ定義を共有でき、VS Codeなどの対応ツールと組み合わせて使う。

📌 このページのポイント
Dev Container の仕組み devcontainer.json Docker コンテナ ランタイム Node / Python等 拡張機能 ESLint / Prettier等 設定・環境変数 ポート / コマンド等 👩‍💻 メンバーA 👨‍💻 メンバーB 🧑‍💻 メンバーC ✓ 同じ定義から環境を作成
Dev Container:設定ファイルで開発環境の作り方を共有
ひよこ ひよこ
Dev Containerってなに?Dockerとは違うの?
ペンギン先生 ペンギン先生
コンテナを「開発環境」として使うための仕組みだよ。devcontainer.jsonっていうファイルに、もとにするイメージやDockerfile、追加したいツール、エディタ向けの設定、環境変数なんかを書いておくんだ
ひよこ ひよこ
それって何がうれしいの?
ペンギン先生 ペンギン先生
環境づくりの手順をファイルとしてリポジトリに入れておけるから、新しいメンバーも、リポジトリを対応ツールで開けば同じ定義からコンテナを作れるんだ。手順書を見ながら1つずつインストールする手間が減るよ。ただし、イメージやツールのバージョンを固定していないと、作った時期によって入るバージョンが変わることがある。そろえたいものはバージョンまで指定しよう
ひよこ ひよこ
VS Code以外でも使えるの?
ペンギン先生 ペンギン先生
Development Container Specificationというオープンな仕様になっているから、VS Code専用ではないよ。公式サイトの対応一覧には、Visual Studio、IntelliJ IDEA、GitHub Codespaces、DevPod、参照実装のDev Container CLIなどが載っている。ただ、対応の程度はツールによって違って、たとえばIntelliJ IDEAは初期段階のサポートと書かれているんだ(2026年9月時点)
ひよこ ひよこ
Dockerfileだけじゃダメなの?わざわざdevcontainer.jsonを書く意味って?
ペンギン先生 ペンギン先生
Dockerfileはコンテナの中身を定義するけど、devcontainer.jsonは「どのDockerfileやイメージを使うか」に加えて、「転送するポート」「作成後に実行するコマンド」「ツールごとのカスタマイズ(customizations)」まで定義できるんだ。VS Codeの拡張機能の指定も、このcustomizationsの中に書くよ。Featuresという仕組みで、追加のツールを部品として足すこともできるんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Dev Container」って出てきたら「設定ファイルでチーム全員が同じ定義の開発環境を作れる仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Development Container」 = 開発コンテナ
💬 Development(開発)とContainer(コンテナ)を組み合わせた言葉。コンテナを開発環境として使うための仕組みだよ

参考資料

← 用語集にもどる