GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verwende ich lokale Docker-Images mit Minikube?

Anmerkungen:

  • Diese Antwort ist nicht auf Minikube beschränkt!

  • Wenn Sie die Registrierung in Minikubes Docker erstellen möchten Führen Sie dann eval $(minikube docker-env) aus zuerst (um docker zu machen verfügbar auf dem Terminal des Host-Rechners).
    Ansonsten über minikube ssh in die virtuelle Maschine einsteigen , und fahren Sie dann mit den folgenden Schritten fort

  • Abhängig von Ihrem Betriebssystem wird Minikube Ihren Homepath automatisch auf der VM bereitstellen.

  • Wie Eli sagte, müssen Sie die lokale Registrierung als unsicher hinzufügen, um http verwenden zu können (gilt möglicherweise nicht bei Verwendung von localhost, trifft jedoch zu, wenn Sie den lokalen Hostnamen verwenden).
    Verwenden Sie http nicht in der Produktion, bemühen Sie sich, die Dinge zu sichern.

Verwenden Sie eine lokale Registrierung:

docker run -d -p 5000:5000 --restart=always --name local-registry registry:2

Markieren Sie Ihr Bild jetzt richtig:

docker tag ubuntu localhost:5000/ubuntu

Beachten Sie, dass localhost in den DNS-Namen des Computers geändert werden sollte, auf dem der Registrierungscontainer ausgeführt wird.

Pushen Sie nun Ihr Image in die lokale Registry:

docker push localhost:5000/ubuntu

Sie sollten es zurückziehen können:

docker pull localhost:5000/ubuntu

Ändern Sie nun Ihre Yaml-Datei so, dass sie die lokale Registrierung verwendet.

Denken Sie darüber nach, Volumes an einem geeigneten Ort bereitzustellen, um die Images in der Registrierung zu speichern.


Wie im Handbuch beschrieben, können Sie den Docker-Daemon von Minikube mit eval $(minikube docker-env) wiederverwenden .

Um also ein Bild zu verwenden, ohne es hochzuladen, können Sie diesen Schritten folgen:

  1. Setzen Sie die Umgebungsvariablen mit eval $(minikube docker-env)
  2. Erstellen Sie das Image mit dem Docker-Daemon von Minikube (zB docker build -t my-image . )
  3. Setzen Sie das Bild in der Pod-Spezifikation wie das Build-Tag (zB my-image )
  4. Stellen Sie den imagePullPolicy ein bis Never , andernfalls versucht Kubernetes, das Image herunterzuladen.

Wichtiger Hinweis: Sie müssen eval $(minikube docker-env) ausführen auf jedem Terminal, das Sie verwenden möchten, da es nur die Umgebungsvariablen für die aktuelle Shell-Sitzung setzt.


Was bei mir funktioniert hat, basierend auf der Lösung von @svenwltr:

# Start minikube
minikube start

# Set docker env
eval $(minikube docker-env)             # unix shells
minikube docker-env | Invoke-Expression # PowerShell

# Build image
docker build -t foo:0.0.1 .

# Run in minikube
kubectl run hello-foo --image=foo:0.0.1 --image-pull-policy=Never

# Check that it's running
kubectl get pods

Linux
  1. Wie ich Vagrant mit libvirt verwende

  2. So installieren Sie Jenkins mit Docker

  3. So verwenden Sie Docker Compose

  4. So konfigurieren Sie Docker für die Verwendung von Proxy

  5. So verwenden Sie den Export mit Python unter Linux

So erstellen Sie Docker-Images mit einer Docker-Datei unter Ubuntu 18.04 LTS

So erstellen Sie Docker-Images mit einer Docker-Datei unter Ubuntu 20.04 LTS

So verwenden Sie Docker Scan, um Schwachstellen in Ihren Bildern zu finden

So verwenden Sie Docker Commit zum Ändern von Container-Images

So stellen Sie CouchDB als Cluster mit Docker bereit

So installieren und verwenden Sie Docker unter AlmaLinux 8