【问题标题】:Docker The source path has too many colonsDocker 源码路径冒号太多
【发布时间】:2021-02-12 15:17:30
【问题描述】:

我在 Windows 命令提示符下运行(我安装了适用于 Windows 的 Linux 子系统):

docker run -d --name privacy-mysql -e MYSQL_ROOT_PASSWORD=DockerPasswort! -e MYSQL_DATABASE=privacy-database -v C:/Users/Alexa/OneDrive/Backend_web_architecture/github_repos/data-privacy-api/db/db_records:/var/lib/mysq"l -v C:/Users/Alexa/OneDrive/Backend_web_architecture/github_repos/data-privacy-api/db/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d" --network privacy-network -dit -p 3306:3306 mysql:latest --default-authentication-plugin=mysql_native_password

这会抛出:

The source path "/Users/Alexa/OneDrive/Backend_web_architecture/github_repos/data-privacy-api/db/db_records:/var/lib/mysql -v C:/Users/Alexa/OneDrive/Backend_web_architecture/github_repos/data-privacy-api/db/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d"
too many colons.
See 'docker run --help'.

我虽然冒号在例如db_records:/var 有必要吗?我需要什么来解决这个问题?

感谢您的帮助!

【问题讨论】:

  • 您还在寻找答案吗?
  • @Btuman 刚刚收到此错误。任何帮助将不胜感激。
  • @datasciencelearner = 我在 docker run 命令前面没有看到 sudo,所以我认为你在 windows 命令行上运行它。您是否尝试将路径参数用引号括起来?

标签: docker


【解决方案1】:

如果你看输出

一个卷映射被指定为:

  • {locationOnHost}:{locationInsideContainer}

由于您要映射的卷包含一个冒号 (C:...) - docker 会将其作为映射中的分隔符

您可以使用 WSL 的 wslpath 将其转换为 *nix 安全路径,例如

wslpath -a 'C:\a\b\ccc\'

结果

/mnt/c/a/b/ccc/

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
相关资源
最近更新 更多