【问题标题】:Local volume includes invalid characters本地卷包含无效字符
【发布时间】:2019-11-22 14:20:16
【问题描述】:

我正在尝试将本地目录挂载到 docker 容器。这是我使用的命令:

docker run -itd --rm --name chatbot --mount source="$(pwd)",target=/instagram-dm-webhook-service  chatbot:12

当前工作目录是:/home/user/instagram-dm-webhook-service

我得到这个错误:

"/home/user/instagram-dm-webhook-service" 包含本地卷名的无效字符,只有 "[a-zA-Z0-9][a-zA-Z0-9_.-]" 是允许。如果您打算传递主机目录,请使用绝对路径。

所以如果我理解这一点,在路径中有破折号字符是可以的。问题可能出在哪里?

【问题讨论】:

    标签: docker docker-compose dockerfile docker-swarm docker-machine


    【解决方案1】:

    你需要在 $(pwd) 之前放一个 /

    docker run -itd --rm --name chatbot --mount source="/$(pwd)",target=/instagram-dm-webhook-service  chatbot:12
    

    【讨论】:

    • 肯定的,必须是绝对路径
    【解决方案2】:

    有趣的是,只添加这个也没有用/ 这里是"/$(pwd)"

    • volume将托管卷安装到容器中
    • bind将一个目录或文件从主机绑定到容器中

    有关安装类型的更多详细信息 - https://docs.docker.com/engine/reference/commandline/service_create/#add-bind-mounts-or-volumes

    所以您需要明确添加 mount 类型 bind 用于挂载目录。

    docker run -it --mount type=bind,source="/$(pwd)",target=/root ubuntu:18.04 /bin/bash
    root@eda980649055:/# cd /root
    root@eda980649055:~# ls
    Jenkinsfile.migrate  LICENSE.txt  README.md  pom.xml  src  target
    

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 2016-06-16
      • 1970-01-01
      • 2022-07-27
      • 2017-11-16
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多