为什么我的Debian容器意外终止

时间:2019-05-09 13:33:36

标签: kubernetes google-kubernetes-engine

我是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写入共享卷路径后立即终止,并且我无法弄清为什么会这样。

以前有没有人遇到过这种情况,并且有可能的解决方案。

2 个答案:

答案 0 :(得分:2)

    command: ["/bin/sh"]
    args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]

如果您查看debian容器,您会发现它正在将“来自debian容器的Hello”写入/pod-data/index.html。

该过程已完成,没有更多要做。因此容器被终止。

另一方面,nginx容器运行一个守护进程,该守护进程一直在运行,始终为最终用户提供Web内容,因此它将继续运行。

答案 1 :(得分:0)

因为它执行指定的命令然后完成。脚本已完成,无事可做,因此pod终止了。 Pod和Docker容器应该是长期运行的进程。如果您需要运行先运行然后完成的脚本,则应考虑使用Jobs