<p>I am using Docker for Mac with Kubernetes support and I'm struggling to create a Kubernetes Deployment that references a locally built image.</p>

<p>Output of <code>docker images</code>: </p>

<pre><code>REPOSITORY  TAG     IMAGE 
test        latest  2c3bdb36a5ed
</code></pre>

<p>My deployment.yaml :</p>

<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloworld-deployment
spec:
  selector:
    matchLabels:
      app: helloworld
  replicas: 1
  template:
    metadata:
      labels:
        app: helloworld
    spec:
      containers:
      - name: aaa
        image: test:latest
        ports:
        - containerPort: 8080
</code></pre>

<p>When i run <code>kubectl apply -f deplyment.yaml</code> pods are created but:</p>

<pre><code>helloworld-deployment-764b8b85d8-2c4kl   0/1       ImagePullBackOff   0          
helloworld-deployment-764b8b85d8-rzq7l   0/1       ImagePullBackOff   0

</code></pre>

<p><code>kubectl describe</code> of one of these pods gives: </p>

<pre><code>  Normal   Scheduled              20s               default-scheduler            Successfully assigned helloworld-deployment-79f66d97c6-7tj2x to docker-for-desktop
  Normal   SuccessfulMountVolume  19s               kubelet, docker-for-desktop  MountVolume.SetUp succeeded for volume "default-token-72f44"
  Normal   BackOff                16s               kubelet, docker-for-desktop  Back-off pulling image "test:latest"
  Warning  Failed                 16s               kubelet, docker-for-desktop  Error: ImagePullBackOff
  Normal   Pulling                4s (x2 over 19s)  kubelet, docker-for-desktop  pulling image "test:latest"
  Warning  Failed                 2s (x2 over 17s)  kubelet, docker-for-desktop  Failed to pull image "test:latest": rpc error: code = Unknown desc = Error response from daemon: pull access denied for test, repository does not exist or may require 'docker login'
  Warning  Failed                 2s (x2 over 17s)  kubelet, docker-for-desktop  Error: ErrImagePull
</code></pre>

<p>What is interesting is that if i try to run some image hosted on dockerhub then everything is fine, 
I also tried to use <a href="https://github.com/GoogleContainerTools/skaffold" rel="noreferrer">skaffold</a> and it also works like a charm...</p>

<p>I see some similar issues regarding minikube where the solution is to use the minikube docker daemon to build images so that they can be referenced from the Kubernetes cluster. </p>

<p>I would like to avoid setting up local repo, so how can I make it work with Docker's Kubernetes ? </p>

<p>I was able to run a local image by setting the <code>imagePullPolicy</code> to <code>Never</code>.</p>

<p>For example:</p>

<pre><code>apiVersion: v1
kind: Pod
metadata:
  name: local-image-test
spec:
  containers:
  - name: local-image-container
    image: local-image:latest
    imagePullPolicy: Never
</code></pre>

<p>(Credit to <a href="https://github.com/kubernetes/kubernetes/issues/1293#issuecomment-357326426" rel="noreferrer">https://github.com/kubernetes/kubernetes/issues/1293#issuecomment-357326426</a> for this solution)</p>
