2 votes

Comment créer des images docker dans le registre minikube ?

J'essaie d'utiliser Kubernetes en local. J'ai donc installé minikube. Lorsque je crée l'objet de déploiement, les pods ne peuvent pas trouver les images dans le registre docker de minikube et le statut des pods est le suivant ErrImageNeverPull . Pour résoudre le problème, j'ai suivi les étapes suivantes :

  1. minikube start
  2. eval $(minikube docker-env)
  3. J'ai changé ImagePullPolicy a Never dans le fichier deployment.yaml
  4. docker-compose build && docker-compose up -d

Même si j'ai suivi toutes ces étapes, les images du projet ne sont pas créées dans le registre minikube. Je l'ai vérifié deux fois en exécutant cette commande eval $(minikube docker-env -u) afin de revenir au registre local de Docker. Les images et les conteneurs ont été créés dans le registre local de Docker.

Ma question est la suivante : comment puis-je créer des images docker dans le registre docker de minikube ?

1voto

Will R.O.F. Points 2464

Docker Compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs. Avec Compose, vous utilisez un fichier YAML pour configurer les services de votre application. Ensuite, avec une seule commande, vous créez et démarrez tous les services à partir de votre configuration.

  • C'est probablement la raison pour laquelle le eval n'a pas fonctionné, parce que l'évaluation est faite pour docker binaire, pas docker-compose . Utiliser un Dockerfile pour exécuter docker build et il doit être enregistré directement dans le registre des images Minikube.

de la documentation Minikube : Comparaison de 5 façons de pousser votre image dans un cluster minikiube La meilleure façon de le faire est décrite ci-dessous :

Ma question est la suivante : comment puis-je créer des images docker dans le registre docker de minikube ?

  • Vous pouvez exécuter minikube ssh et vous pouvez construire les images directement sur la VM Minikube. L'environnement Docker y est déjà configuré :

    $ 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

  • Rappelez-vous, vous devez utiliser le standard docker build pour enregistrer les images dans le registre. docker-compose n'est pas intégré dans Minikube VM

Faites-moi savoir dans les commentaires si vous avez des doutes.

1voto

Elshan Akberov Points 43

J'ai résolu le problème en suivant les étapes suivantes :

  1. J'ai redémarré minikube en exécutant minikube start

  2. Corrí minikube -p minikube docker-env et le résultat est le suivant :

    output of command

  3. J'ai exécuté eval $(minikube -p minikube docker-env)

  4. Puis j'ai couru docker-compose des commandes.

Les images et les conteneurs ont été créés dans le registre docker de minikube.

Pour être honnête, je ne sais pas pourquoi eval $(minikube docker-env) n'a pas fait le travail et les différences entre eval $(minikube docker-env) y eval $(minikube -p minikube docker-env) .

Si vous en connaissez la raison, faites-le moi savoir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X