【发布时间】:2019-02-26 23:58:53
【问题描述】:
我有一个 Docker 映像,我想在 Kubernetes 上的一个卷(持久卷)上共享整个目录。
Dockerfile
FROM node:carbon
WORKDIR /node-test
COPY hello.md /node-test/hello.md
VOLUME /node-test
CMD ["tail", "-f", "/dev/null"]
基本上它会复制一个文件hello.md 并使其成为图像的一部分(我们称之为my-image)。
在 Kubernetes 部署配置中,我从 my-image 创建一个容器,并将一个特定目录共享到一个卷。
Kubernetes 部署
# ...
spec:
containers:
- image: my-user/my-image:v0.0.1
name: node
volumeMounts:
- name: node-volume
mountPath: /node-test
volumes:
- name: node-volume
persistentVolumeClaim:
claimName: node-volume-claim
我希望在持久卷的目录中看到 hello.md 文件,但没有显示任何内容。
如果我不将容器绑定到卷,我可以看到hello.md 文件(带有kubectl exec -it my-container bash)。
我没有做任何与 official Kubernetes example 所做的不同的事情。事实上,我可以更改 mountPath 并切换到官方的 Wordpress 图像,它可以按预期工作。
Wordpress image如何将所有文件复制到卷目录中?
我的 Wordpress Dockerfile 中缺少什么?
【问题讨论】:
-
您好,您需要使用 subPATH 来保存目录kubernetes.io/docs/concepts/storage/volumes/#using-subpath中的内容
-
```volumeMounts: - name: node-volume mountPath: /node-test subPath: node-test ```
标签: docker kubernetes persistent-volumes