我是Docker容器的新手,还处于学习阶段。我正在尝试在我的Kubernetes免费帐户中测试以下代码。
apiVersion: v1
kind: Pod
metadata:
name: two-containers
spec:
restartPolicy: Never
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: nginx-container
image: nginx
volumeMounts:
- name: shared-data
mountPath: /usr/share/nginx/html
- name: debian-container
image: debian
volumeMounts:
- name: shared-data
mountPath: /pod-data
command: ["/bin/sh"]
args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]这部分运行得很好。
然而,当我运行Debian容器时,它在将/pod-data/index.html写入共享卷路径后立即终止,我不知道为什么会发生这种情况。
以前有没有人遇到过这种情况,谁有可能的解决方案。
发布于 2019-05-09 22:53:35
command: ["/bin/sh"]
args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]如果您查看debian容器,您会看到它正在将“Hello from the debian container”写入/pod-data/index.html。
这个过程已经完成了,没有什么需要做的了。因此,容器被终止。
另一方面,nginx容器运行一个守护进程,该守护进程一直在运行,为最终用户提供web内容,因此它将继续运行。
发布于 2019-05-09 21:39:47
因为它执行指定的命令,然后结束。脚本已经完成,没有更多的事情要做,所以pod被终止了。Pod和Docker容器应该是长时间运行的进程。如果你需要运行脚本,然后运行并完成--你应该考虑使用Jobs。
https://stackoverflow.com/questions/56060633
复制相似问题