Вы можете выполнить эту команду, чтобы указать интерфейс командной строки вашего докера на 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.

Так как я могу решить эту проблему тоже.

Спасибо :)

Ответы на вопрос(3)

Ваш ответ на вопрос