You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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系统,升级步骤大概是这样:

  1. 先卸载旧版本的Docker:
    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. 设置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
    
  3. 升级完成后,验证一下版本:
    docker --version
    
    只要版本号≥17.06,就可以正常用你原来的--mount命令了。

方案2:继续用经典的-v参数替代

如果暂时不想升级Docker,完全可以继续用-v参数实现同样的挂载效果,和--mount功能一致。对应你原来的命令,等价的-v写法是:

docker run -d -it --name devtest -v "$(pwd)":/home/ httpd

这个命令在你的1.13.1版本上能正常运行,把主机当前工作目录挂载到容器的/home/目录下。


内容的提问来源于stack exchange,提问作者Ndifreke

火山引擎 最新活动