docker - 当目录名称包含冒号时,无法在 docker 容器中挂载卷

标签 docker docker-volume

当目录名称包含冒号 (:) 时,我无法将卷挂载到 docker 容器

该目录的名称是 2012-08-05-00:16:37,我不想重命名该目录。我尝试过:

docker run -it --name test1 \
-v /host_system_path/2012-08-05-00\:16\:37/:/container_path/2012-08-05-00\:16\:37/ 
image_name

我收到错误:

docker: Error response from daemon: invalid bind mount spec.See 
'docker run --help'.

如果我重命名目录时不带空格或仅使用连字符,则该目录将毫无问题地安装到容器中。有人可以指出当目录包含冒号时如何解决问题吗?

我使用的是 Ubuntu:16.04 和 Docker 版本 17.06.0-ce。

最佳答案

通过 -v 指定目录映射时,当前不支持冒号,而且您似乎也无法转义它们。

您需要利用--mount instead :

docker run ... --mount type=bind,source=/some:colon:file,destination=/container-path ...

在最坏的情况下,您当然也可以使用临时系统链接 (ln -s) 来解决此限制,或者临时重命名目标目录。

关于docker - 当目录名称包含冒号时,无法在 docker 容器中挂载卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46335325/

相关文章:

docker - 了解 docker -v 命令

Docker run --volume 不断创建随机卷而不使用指定的卷

docker run 期间的 docker 卷

docker - 您能否建议清理 docker 容器的最佳方法

postgresql - docker ,错误: cannot run migrations: database needs bootstrapping;

security - Docker注册表和基本身份验证

node.js - 是否建议将 Docker 与 AWS Elastic beanstalk 一起使用?

c - 在基于arm32镜像的容器中,当目录为空时,readdir返回EOVERFLOW

docker - 使用Docker for Windows备份,还原或迁移数据卷

windows - Docker:卷安装目录出现 "permission denied"错误