VS Code Remote Containers扩展是否支持containerd等CRI兼容容器运行时?
VS Code Remote - Containers 对接非Docker容器运行时的解决方案
VS Code Remote - Containers(现更名为Dev Containers扩展)本身支持对接containerd、CRI-O等CRI兼容容器运行时,无需对扩展本身做二次开发,通过配置兼容CLI工具即可实现容器识别和连接,具体操作如下:
方案1:对接containerd运行时
- 安装containerd官方提供的Docker CLI兼容工具
nerdctl,安装完成后先在终端验证nerdctl ps可以正常列出当前运行的containerd容器 - 打开VS Code设置,搜索
Dev > Containers: Docker Path配置项,将默认的docker修改为nerdctl的绝对路径(例如/usr/local/bin/nerdctl) - 重启VS Code后,扩展即可正常识别containerd管理的所有容器,远程连接、文件同步等功能均可正常使用,rootless模式的containerd只需额外配置
CONTAINERD_ADDRESS环境变量指向对应socket路径即可。
方案2:对接CRI-O运行时
- 安装兼容Docker CLI的容器管理工具
podman,配置podman底层对接CRI-O运行时,验证podman ps可以正常列出CRI-O管理的容器 - 打开VS Code设置,将
Dev > Containers: Docker Path配置项的值修改为podman的绝对路径 - 无需其他额外配置,重启VS Code后即可正常使用Dev Containers扩展的所有功能。
注意:部分旧版本的Dev Containers扩展需要额外开启
Dev > Containers: Enable Podman开关才能正常适配podman,新版本已经默认兼容无需单独开启。
内容的提问来源于stack exchange,提问作者Murz
相关产品推荐
相关产品推荐

