<p>Before onboarding to the enterprise k8s / AWS EKS, I am using <code>docker-desktop</code> for local k8s testing on Mac with the following Dockerfile:</p>
<pre><code>FROM openjdk:11-jre-slim
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT [&quot;java&quot;,&quot;-jar&quot;,&quot;/app.jar&quot;]
</code></pre>
<p>with the following deployment steps to <code>docker-desktop</code>:</p>
<pre><code>docker build . -t cpchung/rema

kubectl create deployment rema --image=cpchung/rema --dry-run -o=yaml &gt; deployment.yaml
echo --- &gt;&gt; deployment.yaml
kubectl create service clusterip rema --tcp=8080:8080 --dry-run -o=yaml &gt;&gt; deployment.yaml
kubectl apply -f deployment.yaml
</code></pre>
<p>This generates the deployment.yaml:</p>
<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: rema
  name: rema
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rema
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: rema
    spec:
      containers:
      - image: cpchung/rema
        name: rema
        resources: {}
status: {}
---
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: rema
  name: rema
spec:
  ports:
  - name: 8080-8080
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    app: rema
  type: ClusterIP
status:
  loadBalancer: {}
</code></pre>
<p>and test the deployment with the following health check:</p>
<pre><code>kubectl port-forward svc/rema 8080:8080
</code></pre>
<pre><code>curl localhost:8080/actuator/health
</code></pre>
<p>But I am getting this error:</p>
<pre><code>robinhood $ kubectl get all
NAME                        READY   STATUS             RESTARTS   AGE
pod/rema-57df6cf5fc-px8pc   0/1     ImagePullBackOff   0          4m29s

NAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
service/kubernetes   ClusterIP   10.96.0.1      &lt;none&gt;        443/TCP    18h
service/rema         ClusterIP   10.100.78.60   &lt;none&gt;        8080/TCP   152m

NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/rema   0/1     1            0           4m29s

NAME                              DESIRED   CURRENT   READY   AGE
replicaset.apps/rema-57df6cf5fc   1         1         0       4m29s


robinhood $ kubectl logs rema-57df6cf5fc-px8pc
Error from server (BadRequest): container &quot;rema&quot; in pod &quot;rema-57df6cf5fc-px8pc&quot; is waiting to start: image can't be pulled
</code></pre>
<p>But I really have the image from dockers:</p>
<pre><code>robinhood $ docker images
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
cpchung/rema                                    latest              14a4957873cd        2 hours ago         224MB

</code></pre>
<p>What could be wrong here?  I am using mac with docker-desktop.</p>

<p><a href="https://stackoverflow.com/a/52763242/3514300">https://stackoverflow.com/a/52763242/3514300</a> should solve the issue for you</p>

<p>In your deployment add <code>imagePullPolicy: Never</code></p>

<p>By default for images tagged with no tag are given the <code>latest</code> tag in docker. Kubernetes by default tries to pull the images for <code>latest</code> tag and it wasn't able to find the image in dockerhub. <a href="https://kubernetes.io/docs/concepts/containers/images/#updating-images" rel="noreferrer">https://kubernetes.io/docs/concepts/containers/images/#updating-images</a></p>

<p>Other way is to push your image to dockerhub too.</p>
