由于ContainerCannotRun

时间:2019-06-09 19:15:59

标签: java docker kubernetes

我是kubernetes的新手。最近建立了具有1个主节点和1个节点的kubernetes集群。

我可以通过运行启动Docker容器 sudo docker run <docker-image>在我的节点机器上。

但是我无法使用kubernetes yml文件将Docker容器作为Pod启动。 通过运行sudo kubectl create -f deployment.yml

我描述了吊舱信息,并看到了此错误消息。

      Last State:   Terminated
      Reason:       ContainerCannotRun
      Message:      OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"HOSTNAME\": executable file not found in $PATH": unknown
      Exit Code:    128

docker容器假设要启动一个Java可执行文件。 这是我的部署文件

kind: Service
apiVersion: v1
metadata:
  name: service1-service
spec:
  selector:
    app: service1
  ports:
    - protocol: "TCP"
      # Port accessible inside cluster
      port: 26666
      # Port to forward to inside the pod
      targetPort: 26666
      # Port accessible outside cluster
      nodePort: 26666
  type: LoadBalancer

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: service1-depolyment
spec:
  selector:
    matchLabels:
      app: service1
  replicas: 1
  template:
    metadata:
      labels:
        app: service1
    spec:
      containers:
        - name: service1
          image: service1-docker-image
          imagePullPolicy: Never
          ports:
            - containerPort: 26666
          # args: ["HOSTNAME", "KUBERNETES_PORT"]

在此部署文件中,我尝试创建一个nginx和一个Java Web应用程序服务。

这是因为我定义了错误的apiVersion和kind吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

查看此错误exec: \"HOSTNAME\": executable file not found in $PATH

我有一个类似的错误,因为容器找不到错误的路径,因此无法找到docker“ CMD”二进制文件。检查文件的路径,应该可以解决问题。