Mac环境下为运行Ubuntu的Docker容器挂载本地卷的正确方法是什么?
报错原因
你出现的报错是因为docker run命令的参数顺序不符合规则:所有Docker的运行配置参数(包括-v挂载参数、-p端口映射参数等)必须放在镜像名称之前,镜像名称之后的所有内容都会被Docker判定为容器启动后要执行的内部命令。你把-v参数写在了ubuntu:xenial镜像名的后面,Docker会尝试在容器内执行-v命令,自然会提示找不到对应可执行文件。
正确挂载操作
- 首先确认你提前创建的本地目录路径正确:
/Users/myname/Documents/UbuntuWorkspace存在且拼写无误 - 执行正确的启动命令,
-v参数格式为本地绝对路径:容器内目标挂载路径,你可以自定义容器内的挂载目录,示例中将本地目录挂载到容器的/workspace路径下,完整命令如下:
sudo docker run -it -v /Users/myname/Documents/UbuntuWorkspace:/workspace ubuntu:xenial
- 挂载验证:进入容器后执行
ls /workspace,可以看到本地UbuntuWorkspace目录下的所有内容;你在容器内/workspace路径下做的所有文件修改、新增、删除操作,都会实时同步到Mac本地目录,直接在Finder打开对应路径即可查看编辑。
异常排查
如果执行命令后出现权限类报错,可打开Docker Desktop的设置界面,进入资源->文件共享面板,确认/Users目录已经在允许共享的目录列表中,修改配置后重启Docker即可生效。
内容的提问来源于stack exchange,提问作者Suraj S Jain
相关产品推荐
相关产品推荐

