VS Code Dev Containers运行Docker容器失败求助
问题排查与解决方案
问题出在runArgs的配置格式上:VS Code Dev Containers扩展会将数组中的每个字符串作为独立的命令行参数传递给docker run,而你把选项和对应值写在了同一个字符串里(比如"--gpus 0"),docker会把整个字符串识别为一个未知flag,这就是报错的原因。
终端直接运行时没问题,是因为shell会自动按空格拆分参数,而JSON数组不会做这个拆分。
修改后的正确配置
将每个选项与其值拆分为数组的独立元素:
{ "name": "myname Dev Container", "image": "myname/detectron2-pytorch:1.13.1-cuda11.6.2-cudnn8-devel", "runArgs": ["--gpus", "0", "--cpuset-cpus", "0-7", "--group-add", "phd", "--runtime=nvidia", "--shm-size=8G"], "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached", "workspaceFolder": "/workspace" }
关键说明
- 对于带值的选项(如
--gpus、--cpuset-cpus、--group-add),必须将选项名和值分成两个单独的数组元素 - 对于不带值或值与选项连写的(如
--runtime=nvidia、--shm-size=8G),可以保留为单个字符串
修改后重新执行"Dev Containers: Reopen in container"命令即可正常启动容器。
内容的提问来源于stack exchange,提问作者ricber
相关产品推荐
相关产品推荐

