While working with Kubernetes locally, you may want to run some locally built Docker images in Kubernetes. This may not work out-of-the-box, because minikube uses its own local Docker registry that’s not connected to the one on your local machine.
In this article, I’ll show how easy it is to run locally built images in Kubernetes, without publishing them to a global registry. For this article, I suppose you already have kubectl and minikube installed locally. This article is targeted on Linux environment.
I start with creating the following trivial Dockerfile
that runs busybox and outputs “Hello World”:
FROM busybox
CMD [“echo”, “Hello World!”]
I now build it:
> docker build . -t forketyfork/hello-world
I can now run a container from this image and see that it works as expected:
> docker run forketyfork/hello-world
Hello World!
Next, I create the helloworld.yml
configuration file to run this container as a Kubernetes job:
apiVersion: batch/v1
kind: Job
metadata:
name: hello-world
spec:
template:
metadata:
name: hello-world-pod
spec:
containers:
- name: hello-world
image: forketyfork/hello-world
restartPolicy: Never
Notice that I’ve specified the name of the image I just built and set the restartPolicy
to Never
, so that it would only run once and terminate.
#kubernetes #minikube #docker #dockerfiles