我有一个使用卷写入文件的docker映像:
docker run --rm -v /home/dir:/out/ image:cli args
当我尝试在Pod中运行此容器时,容器正常退出,但未写入文件。
我不明白。
如果容器未找到该卷,则会抛出错误,例如,如果我在不使用-v
选项的情况下运行该容器,则会抛出该错误:
Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path '/out/file.txt'.
但是容器没有任何错误。 就像写入文件一样完成,但是文件不存在。
我对Kubernetes还是很陌生,但这让我发疯了。
Kubernetes是否会阻止文件写入?还是我缺少明显的东西?
如果有帮助,整个Kubernetes上下文将由GCP composer-airflow管理...
docker -v: Docker version 17.03.2-ce, build f5ec1e2
答案 0 :(得分:1)
如果要在Kubernetes中具有这种行为,可以使用hostPath
卷。
基本上,您可以在Pod规范中指定它,然后将卷安装在Pod运行所在的节点上,然后在Pod退出后该文件应该位于该节点中。
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: image:cli
name: test-container
volumeMounts:
- mountPath: /home/dir
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /out
type: Directory
答案 1 :(得分:1)