Docker 文档 说可以将单个文件挂载到 Docker 容器中:
-v 标志也可用于从主机挂载单个文件——而不仅仅是目录。
$ docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash
这会将您放入新容器中的 bash shell,您将从主机获得 bash 历史记录,当您退出容器时,主机将获得在容器中键入的命令的历史记录。
但是当我尝试时,文件作为目录安装:
tom@u ~/project $ docker run --rm -it -v file.json:/file.json test
total 80K
drwxr-xr-x 9 root root 4.0K Dec 7 12:58 .
drwxr-xr-x 63 root root 4.0K Dec 7 12:58 ..
drwxr-xr-x 2 root root 4.0K Dec 4 16:10 file.json
我的 Dockerfile 看起来像这样:
FROM ubuntu:14.04
MAINTAINER Tom
CMD ["ls", "-lah", "/test"]
Docker 版本为 1.9.1,构建 a34a1d5。
这是文档问题,是我的误解,还是发生了其他事情?
原文由 TTT 发布,翻译遵循 CC BY-SA 4.0 许可协议
test
是您使用“docker build -t test
”构建的图像的名称,而不是/test
文件夹。尝试
Dockerfile
:和:
请注意使用
$(pwd)
以使用其完整绝对路径安装文件(不支持相对路径)通过使用
$(pwd)
,您将获得一个确实存在的绝对路径,并尊重大小写,而不是可能不存在的文件名或路径。不存在的主机路径将作为文件夹安装在容器中。