💬
DevContainer内でDockerを使用したい
TL;DR
// .devcontainer/devcontainer.json
{
...
"features": {
...
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
// または
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
},
}
なぜ
DevContainer 内で Kilo Code ( Cline, Roo Code ) の MCP を使用したかった。
どうやって
まず、コンテナ内で docker を使用するには、DinD (docker in docker) や DooD (docker outside of docker) という方法があります。
説明は以下の記事が詳しいです。
やってみる
DevContainer に機能を追加するには色々ありますが、まず簡単なものに、 features に追加する方法があります。
公式のレポジトリは以下です。
このレポジトリに、 DinD や DooD をの機能を追加する feature のテンプレートがあるのでそれを使用します。
.devcontainer/devcontainer.json の features に
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
や
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
を追加します。
TL;DR参照
後は、 DevContainer を再起動すれば docker コマンドが使用できます。
おめでとう!
vscode ➜ /workspaces/example (main) $ docker ps
abcdef012345 example:latest "docker-entrypoint.sh" 1 minute Up 1 minute example
Discussion