Digital Ocean Docker registry
doctl registry create szabgab-demo
The URL of the registy then going to be:
registry.digitalocean.com/szabgab-demo
In order to login to the Docker registry:
sudo snap connect doctl:dot-docker
doctl registry login
Locally build the docker image (as earlier) so we can try it:
docker build -t myflask:1.00 -f Dockerfile_echo_get .
- Tag it to the Docker registry of Digital Ocean
docker tag myflask:1.00 registry.digitalocean.com/szabgab-demo/myflask:1.00
Then push to the registry
docker push registry.digitalocean.com/szabgab-demo/myflask:1.00
Web based integration between the Kubernetes cluster and the Docker registry. See this explanation: How to Use Your Private DigitalOcean Container Registry with Docker and Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: echo-get-deployment
spec:
selector:
matchLabels:
run: echo-get-pod
replicas: 2
template:
metadata:
labels:
run: echo-get-pod
spec:
containers:
- name: echo-get-container
#image: python:3.9
#command: ["tail", "-f", "/etc/passwd"]
#myflask:1.00
image: registry.digitalocean.com/szabgab-demo/myflask:1.00
imagePullPolicy: Always
#imagePullPolicy: Never
ports:
- containerPort: 5000
kubectl apply -f deploy_echo_get.yaml
- "ssh" to the docker container running in the pod on Kubernetes.
kubectl exec -it echo-get-deployment-bb5bd946-p6k6m -- bash
apiVersion: v1
kind: Service
metadata:
name: echo-get-loadbalancer
annotations:
service.beta.kubernetes.io/do-loadbalancer-protocol: "http"
service.beta.kubernetes.io/do-loadbalancer-size-slug: "lb-small"
spec:
type: LoadBalancer
selector:
run: echo-get-pod
ports:
- name: http
protocol: TCP
port: 80
targetPort: 5000
kubectl apply -f load_balancer.yaml
- See also this example