Как создать docker изображений внутри реестра Minikube - PullRequest
1 голос
/ 20 апреля 2020

Я пытаюсь использовать kubernetes локально. Таким образом я установил миникуб. Когда я создаю объект развертывания, модуль не может найти изображения в реестре minikube docker, а статус модуля отображается как ErrImageNeverPull. Чтобы решить проблему, я выполнил следующие действия:

  1. minikube start
  2. eval $(minikube docker-env)
  3. Я изменил ImagePullPolicy на Never в файле deploy.yaml
  4. docker-compose build && docker-compose up -d

Несмотря на то, что я выполнил все эти шаги, изображения для проекта не создаются в реестре Minikube. Я дважды проверил это, выполнив эту команду eval $(minikube docker-env -u), чтобы переключиться обратно в локальный реестр docker. Изображения и контейнеры были созданы в локальном реестре docker.

Мой вопрос: как я могу создать docker изображений в реестре minikube docker?

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Я решил проблему, выполнив следующие действия:

  1. Перезапустил мини-куб, выполнив minikube start
  2. Я запустил minikube -p minikube docker-env, и он вернул следующее:

    output of command

  3. Я выполнил eval $(minikube -p minikube docker-env)

  4. Затем я запустил docker-compose команды.

Изображения и контейнеры были созданы в реестре minikube docker.

Если честно, я не знаю, почему eval $(minikube docker-env) не выполнил свою работу и различия между eval $(minikube docker-env) и eval $(minikube -p minikube docker-env).

Если вы знаете причину, пожалуйста, дайте мне знать.

1 голос
/ 20 апреля 2020

Docker Compose - это инструмент для определения и запуска мультиконтейнерных Docker приложений. С Compose вы используете файл YAML для настройки служб вашего приложения. Затем с помощью одной команды вы создаете и запускаете все службы из вашей конфигурации.

  • Это, вероятно, причина, по которой eval не работал, потому что eval сделан для двоичного файла docker, а не docker-compose. Используйте Dockerfile для запуска docker build, и он должен быть зарегистрирован непосредственно в реестре изображений Minikube.

из Minikube Документация: Сравнение 5 способов преобразования sh вашего изображения в кластер мини-кубов , лучший способ сделать это, как описано ниже:

Мой вопрос: как я могу создать docker изображений в реестре minikube docker?

  • Вы можете запустить minikube ssh и создать образы непосредственно на виртуальной машине Minikube. Среда Docker уже установлена ​​там:
$ minikube ssh
                         _             _            
            _         _ ( )           ( )           
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __  
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)


$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
nginx                latest              e791337790a6        3 days ago          127MB
nginx                <none>              ed21b7a8aee9        2 weeks ago         127MB
ubuntu               latest              4e5021d210f6        4 weeks ago         64.2MB
  • Помните, что вы должны использовать стандарт docker build для регистрации изображений в реестре. docker-compose не запекается внутри Minikube VM

Дайте мне знать в комментариях, если у вас есть какие-либо сомнения.

...