一尘不染

在Docker中将单个文件卷挂载为目录

linux

Docker文档指出,可以将单个文件装载到Docker容器中:

-v标志还可用于从主机挂载单个文件-而不是目录。

$ docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash

这会将您放入新容器中的bash外壳中,您将从主机获得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。

这是文档问题,还是我的误解,或者还有其他情况吗?


阅读 1221

收藏
2020-06-07

共1个答案

一尘不染

test是您使用“ docker build -t test”而非/test文件夹构建的图像的名称。

尝试Dockerfile使用:

CMD ["ls", "-lah", "/"]
or
CMD ["cat", "/file.json"]

和:

docker run --rm -it -v $(pwd)/file.json:/file.json test

请注意使用$(pwd)以便以其完整的绝对路径挂载文件(不支持相对路径)

2020-06-07