GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare le immagini docker locali con Minikube?

Note:

  • Questa risposta non è limitata a minikube!

  • Se vuoi creare il registro su Docker di minikube quindi esegui eval $(minikube docker-env) prima (per rendere docker disponibili sul terminale della macchina host).
    Altrimenti entra nella macchina virtuale tramite minikube ssh , quindi procedi con i seguenti passaggi

  • a seconda del tuo sistema operativo, minikube monterà automaticamente il tuo homepath sulla VM.

  • come ha affermato Eli, dovrai aggiungere il registro locale come non sicuro per poter utilizzare http (potrebbe non essere applicabile quando si utilizza localhost ma si applica se si utilizza il nome host locale)
    Non utilizzare http in produzione, sforzati di mettere in sicurezza le cose.

Usa un registro locale:

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

Ora tagga correttamente la tua immagine:

docker tag ubuntu localhost:5000/ubuntu

Si noti che localhost deve essere modificato nel nome DNS della macchina che esegue il contenitore del registro.

Ora invia la tua immagine al registro locale:

docker push localhost:5000/ubuntu

Dovresti essere in grado di ritirarlo:

docker pull localhost:5000/ubuntu

Ora cambia il tuo file yaml per usare il registro locale.

Pensa a montare i volumi nella posizione appropriata, per rendere persistenti le immagini nel registro.


Come descrive il manuale, puoi riutilizzare il demone Docker da Minikube con eval $(minikube docker-env) .

Quindi, per utilizzare un'immagine senza caricarla, puoi seguire questi passaggi:

  1. Imposta le variabili d'ambiente con eval $(minikube docker-env)
  2. Costruisci l'immagine con il demone Docker di Minikube (ad esempio docker build -t my-image . )
  3. Imposta l'immagine nelle specifiche del pod come il build tag (ad es. my-image )
  4. Imposta il imagePullPolicy a Never , altrimenti Kubernetes proverà a scaricare l'immagine.

Nota importante: Devi eseguire eval $(minikube docker-env) su ogni terminale che vuoi usare, poiché imposta solo le variabili d'ambiente per la sessione di shell corrente.


Cosa ha funzionato per me, basato sulla soluzione di @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. Come utilizzare le immagini Docker, i contenitori e i file Docker in modo approfondito

  2. Come condividere le immagini Docker con altri

  3. Come modificare le immagini Docker

  4. Come utilizzare l'esportazione con Python su Linux

  5. Come utilizzare l'opzione --since con il comando docker logs

Come creare immagini Docker con un Dockerfile su Ubuntu 18.04 LTS

Come creare immagini Docker con un Dockerfile su Ubuntu 20.04 LTS

Come utilizzare Docker Scan per trovare le vulnerabilità nelle tue immagini

Come utilizzare Docker Commit per modificare le immagini del contenitore

Come distribuire CouchDB come cluster con Docker

Come installare e utilizzare Docker su AlmaLinux 8