DEV Community

Cover image for How to pull image from private Docker Registry in Kubernetes cluster πŸ€”
TechWorld with Nana
TechWorld with Nana

Posted on

How to pull image from private Docker Registry in Kubernetes cluster πŸ€”

The question πŸ€”

How do you get Docker images 🐳 in your Kubernetes cluster from private Docker registries like AWS ECR, Nexus, etc?


For images like Mongodb, Elastic, that are hosted on Docker Hub, it’s straightforward because they are hosted in a public repository and anyone can access them.

But your own application lives in a private repository and needs explicit access from the cluster. So how do you pull the application images from your private docker repository on Kubernetes cluster?

How to do it πŸ™ŒπŸΌ

There are 2 steps to take to achieve it.

1) you create a Secret component that contains access token/credentials to your Docker registry.

Example Secret config:
Secret component

2) you configure your Deployment component to use that secret using a specific imagePullSecrets attribute.

Example Deployment config:
Deployment component

Note: Pods can only reference imagePullSecrets in their own namespace, so this process needs to be done one time per namespace!

In the demo video 🎬 I show you the whole process step by step:

Hope it's helpful some of you πŸ™‚

I'm excited to host my first *LIVE Webinar on Kubernetes * πŸ€“ πŸ‘©πŸ»β€πŸ’»

Date: The webinar is on Saturday June 13, 2020
Topic: Deploy Elasticsearch StatefulSet and Kibana with Helm on a Cloud platform

Top comments (1)

alexpi_31 profile image
Alejandro Pimentel • Edited

Hi Nana, thank you so much for the excellent content.

You added "imagePullPolicy: Always" to force docker download the image because you had it in your host already.

I think it wouldn't matter since the Docker pulling the image is the one inside minikube, not the one running in your host.

Am I understanding this correctly?