Вы можете выполнить эту команду, чтобы указать интерфейс командной строки вашего докера на minikube: eval $ (minikube docker-env), а затем вы можете создавать свои изображения там или экспортировать их из того места, где они у вас есть, и импортировать.
я есть установочный докер на моей машине, а также мини-куб, в котором есть докер, поэтому, вероятно, у меня есть два экземпляра докера, работающих на разных виртуальных машинах.
Я создаю образ и помечаю его, затем помещаю в локальный реестр, и он успешно выдвигается, и я могу также извлечь его из реестра, а также, когда я запускаю curl, чтобы получить список тегов, я получил результат, и вот что я сделал
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
Все вышеперечисленные шаги работают нормально, без проблем.
Моя проблема, когда я запускаю Minikube и пытаюсь получить доступ к этому изображению в локальном реестре внутри него
Поэтому, когда я запускаю следующие команды
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
на последнем шаге (пункт 4) он дал мне следующее сообщение
curl: (7) Не удалось подключиться к 127.0.0.1 порту 5000: соединение отказано
Таким образом, я могу получить доступ к реестру образов с моей машины, но не из мини-куба, что, конечно же, создает проблемы при развертывании этого образа с помощью Kubernetes на мини-кубе и не позволяет выполнить развертывание из-за невозможности подключения кhttp://127.0.0.1:5000
Можете ли вы помочь мне настроить minikube, чтобы увидеть мой локальный реестр, чтобы моя проблема была решена, тогда я смогу успешно развернуть образ в minikube, используя kubernetes?
ОБНОВИТЬ
Я использую этот файл yaml (я назвал егоConsolePre.yaml) развернуть мой образ с помощью 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
и когда я запускаю следующую команду, чтобы применить изменения
sudo kubectl apply -f /PATH_TO_YAML_FILE/ConsolePre.yaml
результат
NAME READY STATUS RESTARTS AGE
po/tripbru-console-1655054400-x3g87 0/1 ErrImagePull 0 1m
и когда я запускаю опишите команду
sudo kubectl описать pod tripbru-console-1655054400-x3g87
я нашел следующее сообщение в описании результата
Ошибка ответа от демона: {"message": "Gethttps: //docker.local: 5000 / v1 / _ping: dial tcp: lookup docker.local в 10.0.2.3:53: read udp 10.0.2.15:57792-\u003e10.0.2.3:53: тайм-аут ввода-вывода "}
и я настроилdocker.local xxx.xxx.xx.4 в миникубе / etc / hosts, так что я не знаю, откуда 10.0.2.3:53 и 10.0.2.15:57792.
Так как я могу решить эту проблему тоже.
Спасибо :)