I have setup docker on my machine and also minikube which have docker inside it, so probably i have two docker instances running on different VM
I build an image and tag it then push it to local registry and it pushed successfully and i can pull it from registry too and also when i run curl to get tags list i got result, and here are what i did
1- docker build -t 127.0.0.1:5000/eliza/console:0.0.1 .
2- docker run -d -p 5000:5000 --name registry registry:2
3- docker tag a3703d02a199 127.0.0.1:5000/eliza/console:0.0.1
4- docker push 127.0.0.1:5000/eliza/console:0.0.1
5- curl -X GET http://127.0.0.1:5000/v2/eliza/console/tags/list
all above steps are working fine with no problems at all.
My problem is when i run minikube and try to access this image in local registry inside it
So when i run next commands
1- sudo minikube start --insecure-registry 127.0.0.1:5000
2- eval $(minikube docker-env)
3- minikube ssh
4- curl -X GET http://127.0.0.1:5000/v2/eliza/console/tags/list
in last step (point 4) it gave me next message
curl: (7) Failed to connect to 127.0.0.1 port 5000: Connection refused
So i can access image registry from my machine but not from minikube which make a problems of course with me when i deploy this image using Kubernetes on minikube and make deploy failed due to can't connect to http://127.0.0.1:5000
Can you help me configuring minikube to see my local registry so my problem will be solved then i can deploy image to minikube using kubernetes successfully?
UPDATE
I am using this yaml file (i named it ConsolePre.yaml) to deploy my image using kubernetes
apiVersion: v1
kind: Service
metadata:
name: tripbru-console
labels:
app: tripbru-console
spec:
ports:
- port: 9080
targetPort: 9080
nodePort: 30181
selector:
app: tripbru-console
tier: frontend
type: NodePort
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tripbru-console
labels:
app: tripbru-console
spec:
strategy:
type: Recreate
template:
metadata:
labels:
app: tripbru-console
tier: frontend
spec:
containers:
- image: docker.local:5000/eliza/console:0.0.1
name: tripbru-console
ports:
- containerPort: 9080
name: tripbru-console
and when i run next command to apply changes
sudo kubectl apply -f /PATH_TO_YAML_FILE/ConsolePre.yaml
the result is
NAME READY STATUS RESTARTS AGE
po/tripbru-console-1655054400-x3g87 0/1 ErrImagePull 0 1m
and when i run describe command
sudo kubectl describe pod tripbru-console-1655054400-x3g87
i found next message in description result
Error response from daemon: {"message":"Get https://docker.local:5000/v1/_ping: dial tcp: lookup docker.local on 10.0.2.3:53: read udp 10.0.2.15:57792-\u003e10.0.2.3:53: i/o timeout"}
and i configured docker.local xxx.xxx.xx.4 in minikube /etc/hosts so i don't know from where 10.0.2.3:53 and 10.0.2.15:57792 come from.
So how can i solve this issue too.
Thanks :)
/etc/docker/daemon.json
with contents{"insecure-registries": ["docker.local:5000", "xxx.xxx.xx.4:5000"]}
. Use the IP also. After creating the file restart docker and test your system again. This all will be done inside Minukube VM – Subliminal