我无法在Kubernetes中通过部署YAML上传文件。
部署YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: openjdk:14
ports:
- containerPort: 8080
volumeMounts:
- name: testing
mountPath: "/usr/src/myapp/docker.jar"
workingDir: "/usr/src/myapp"
command: ["java"]
args: ["-jar", "docker.jar"]
volumes:
- hostPath:
path: "C:\\Users\\user\\Desktop\\kubernetes\\docker.jar"
type: File
name: testing我得到以下错误:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 19s default-scheduler Successfully assigned default/test-64fb7fbc75-mhnnj to minikube
Normal Pulled 13s (x3 over 15s) kubelet Container image "openjdk:14" already present on machine
Warning Failed 12s (x3 over 14s) kubelet Error: Error response from daemon: invalid mode: /usr/src/myapp/docker.jar当我删除volumeMount时,它运行时会出现错误,无法访问docker.jar。
volumeMounts:
- name: testing
mountPath: "/usr/src/myapp/docker.jar"发布于 2021-02-04 13:13:06
这是一个社区wiki asnwer可以自由地扩展它。
这是众所周知的Windows上的Docker问题。现在无法将Windows目录正确地挂载为卷。
您可以尝试这个github线程中@CodeWizard提到的一些解决方案,比如这里或这里。
此外,如果使用的是VirtualBox,则可能需要检查这个解决方案。
在Windows上,不能直接将Windows目录映射到容器。因为您的容器驻留在VirtualBox VM中。因此,您的docker -v命令实际上映射了VM和容器之间的目录。 所以你必须分两步: 通过VirtualBox管理器将Windows目录映射到VM,映射容器中的一个目录到VM中的目录,您最好使用Kitematic来帮助您。这是很好的选择。
或者,您可以在Linux环境中部署您的安装程序,以完全忽略这些特定的问题。
https://stackoverflow.com/questions/66004118
复制相似问题