Docker 源码路径冒号太多

dat*_*ner 7 docker

我在 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
Run Code Online (Sandbox Code Playgroud)

这抛出:

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'.
Run Code Online (Sandbox Code Playgroud)

我虽然在 eg 的冒号db_records:/var是必要的?我需要什么来解决这个问题?

感谢您的帮助!

小智 5

如果你看一下输出

卷映射指定为:

  • {locationOnHost}:{locationInsideContainer}

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

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

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

结果是

/mnt/c/a/b/ccc/