Docker使用--mount挂载主机目录至容器时出现unknown flag报错
解决Docker
--mount 参数报错的问题 嘿,我来帮你搞定这个Docker挂载的问题!你遇到的Error unknown flag: --mount报错,本质原因很简单——你的Docker版本太老了,还不支持--mount这个参数。
为什么会报错?
--mount是Docker在17.06 CE版本才正式引入的新挂载语法,而你的Docker Server版本是1.13.1,这个版本比--mount的诞生版本早了好几个迭代,自然识别不了这个参数。相反,-v/--volume是Docker从早期就支持的经典挂载方式,所以用它就没问题。
从你给出的环境信息也能确认这一点:
Server Version: 1.13.1
两种解决方案任你选
方案1:升级Docker到支持--mount的版本
如果你确实想用--mount的语法,那就得把Docker升级到17.06 CE或更高版本。针对你的Ubuntu 17.04系统,升级步骤大概是这样:
- 先卸载旧版本的Docker:
sudo apt-get remove docker docker-engine docker.io containerd runc - 设置Docker官方软件源,然后安装最新稳定版:
sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io - 升级完成后,验证一下版本:
只要版本号≥17.06,就可以正常用你原来的docker --version--mount命令了。
方案2:继续用经典的-v参数替代
如果暂时不想升级Docker,完全可以继续用-v参数实现同样的挂载效果,和--mount功能一致。对应你原来的命令,等价的-v写法是:
docker run -d -it --name devtest -v "$(pwd)":/home/ httpd
这个命令在你的1.13.1版本上能正常运行,把主机当前工作目录挂载到容器的/home/目录下。
内容的提问来源于stack exchange,提问作者Ndifreke




