【发布时间】:2018-04-03 15:22:37
【问题描述】:
我有一个简单的 Dockerfile
FROM alpine
RUN apk add --no-cache lsyncd
CMD ["ls", "-al", "/etc/lsyncd"]
我构建了映像,它工作正常,如果我像这样运行它,它工作正常:
docker run -i -t -P <NAME_OF_THE_IMAGE>
我得到了包含预期文件的文件夹列表,因为 CMD 会这样做。
如果我像这样调整它:
docker run -i -t -P -v /docker/dcm/tst:/etc/lsyncd <NAME_OF_THE_IMAGE>
它创建了空的“/docker/dcm/tst”文件夹,ls 命令也返回空。
如果我的理解是正确的,如果本地机器上的文件夹“/docker/dcm/tst”不存在,将创建一个新文件夹,并将文件夹“/etc/lsyncd”的内容复制到新文件夹。
我的理解正确吗?什么可能导致我看到的问题?
uname -a
Linux docker 4.9.53-5.ph2-esx #1-photon SMP Thu Oct 26 02:44:24 UTC 2017 x86_64 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz GenuineIntel GNU/Linux
【问题讨论】:
-
你是在 docker 容器中还是在主机中运行
uname -a? -
命名卷与主机卷(绑定挂载)的行为不同。
-
@juanlumn "uname -a" 我在主机上运行它 - 只是为了显示我正在运行 docker 的操作系统。
标签: docker docker-volume