Devcontainerを使ってみて
前提事項
- Windows11 Home (22H2)
- Vscode
目次
初期構築
1.コマンドパレット
VsCodeのコマンドパレットで New Dev Container... を実行
コマンドパレット
>Dev Containers: New Dev Container...
2.Pythonで構築
pythonのコンテナが色々用意されているが、無難に一番上の Python 3 を選択
OptionでPythonのバージョンやライブラリ等もカスタマイズできますが、今回はデフォルトで最低限何が提供されるのか知りたいので、選択しません。
3.構築完了
待つこと5~10分![]()
ようやく devcontainer.jsonなどの生成が完了
今回インストールされたpython(最新)
python --version
vscode ➜ /workspaces/python $ python --version
Python 3.12.2
また、デフォルトのライブラリ
python library
vscode ➜ /workspaces/python $ pip freeze
gitdb==4.0.11
GitPython==3.1.41
setuptools==69.0.3
smmap==5.0.1
wheel==0.42.0
デフォルトのディレクトリ構成は以下の通り。
tree workspaces/python
vscode ➜ /workspaces/python $ tree -a /workspaces/python
/workspaces/python
├── .devcontainer
│ └── devcontainer.json
└── .github
└── dependabot.yml
作成された Container, Image, Volume はVSCodeの Remote Explorer から参照できる。
デフォルトのContaier, Image, Volumeは以下の通り。
docker
PS C:\Users\XXXX> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f4c23712b60 mcr.microsoft.com/devcontainers/python:1-3.12-bullseye "/bin/sh -c 'echo Co…" 40 minutes ago Up 37 minutes elegant_hawking
PS C:\Users\XXXX> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vsc-volume-bootstrap latest d4fb77756f9d 43 minutes ago 789MB
mcr.microsoft.com/devcontainers/python 1-3.12-bullseye be4e8f3d262f 2 weeks ago 1.54GB
alpine 3.16.3 bfe296a52501 15 months ago 5.54MB
PS C:\Users\XXXX> docker volume ls
DRIVER VOLUME NAME
local python
local vscode
Imageについて
| Image | 説明 |
|---|---|
vsc-volume-bootstrap:latest |
DevContainerがコンテナを初めて起動する際に、VS Codeの設定や拡張機能をコンテナ内にインストールするために使用されるイメージ。 このプロセスにより、開発者はコンテナ内でVS Codeのフル機能を利用できます。 |
mcr.microsoft.com/devcontainers/python:1-3.12-bullseye |
Python開発用に最適化されたDevContainerのイメージ。 Python 3.12を含むDebian Bullseyeベースの環境が提供される。 |
alpine:3.16.3 |
Alpine Linuxの軽量なLinuxディストリビューションのイメージ。 |
Volumeについて
| Volume | 説明 |
|---|---|
python |
Python開発環境に関連するデータを永続化するために使用されるDockerボリューム。 例えば、プロジェクトの依存関係やローカルデータベースのデータなど、コンテナの再起動や再構築を跨いで保持したいデータを保存する。 |
vscode |
VSCodeの設定や拡張機能のデータを永続化するために使用されるDockerボリューム。このボリュームにより、開発環境のカスタマイズがコンテナの再起動や再構築を跨いで保持される。 |



