如何通过devcontainer.json在VM上自动安装Docker与Docker Compose?
问题原因说明
你之前用的initializeCommand是在本地开发机器上执行的,并非在创建的VM/Dev Container内部运行,所以安装命令根本没在目标Debian/Ubuntu系统上执行,自然会出现Docker未安装的提示。
可行实现方法
方法1:通过postCreateCommand在容器内安装
postCreateCommand是容器创建完成后在内部执行的命令,直接在devcontainer.json中配置即可:
{ "remoteUser": "root", "postCreateCommand": "apt update && apt upgrade -y && apt install -y docker.io docker-compose" }
设置remoteUser: root是为了避免sudo权限验证的麻烦;如果不想使用root用户,也可以提前配置当前用户的sudo免密权限,不过直接用root更简洁。
方法2:使用Dev Container官方Feature(推荐)
Dev Container有官方维护的Docker-in-Docker特性,能自动处理Docker和Docker Compose的安装、环境配置,比手动写命令更稳定可靠:
{ "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": { "version": "latest", "installDockerCompose": true } } }
这个特性会自动完成依赖更新、Docker服务启动等全流程操作,无需手动编写复杂命令。
内容的提问来源于stack exchange,提问作者problemofficer - n.f. Monica
相关产品推荐
相关产品推荐

