GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo usar imágenes acoplables locales con Minikube?

Notas:

  • ¡Esta respuesta no se limita a minikube!

  • Si desea crear el registro en Docker de minikube luego ejecuta eval $(minikube docker-env) primero (para hacer docker disponible en el terminal de la máquina host).
    De lo contrario, ingrese en la máquina virtual a través de minikube ssh y luego continúe con los siguientes pasos

  • dependiendo de su sistema operativo, minikube montará automáticamente su ruta de inicio en la VM.

  • como dijo Eli, deberá agregar el registro local como inseguro para usar http (es posible que no se aplique cuando se usa localhost pero sí se aplica si se usa el nombre de host local)
    No use http en producción, haga el esfuerzo de asegurar las cosas.

Utilice un registro local:

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

Ahora etiquete su imagen correctamente:

docker tag ubuntu localhost:5000/ubuntu

Tenga en cuenta que localhost debe cambiarse al nombre dns de la máquina que ejecuta el contenedor de registro.

Ahora envíe su imagen al registro local:

docker push localhost:5000/ubuntu

Deberías poder retirarlo:

docker pull localhost:5000/ubuntu

Ahora cambie su archivo yaml para usar el registro local.

Piense en montar volúmenes en la ubicación adecuada para conservar las imágenes en el registro.


Como se describe en el manual, puede reutilizar el demonio Docker de Minikube con eval $(minikube docker-env) .

Entonces, para usar una imagen sin cargarla, puede seguir estos pasos:

  1. Establecer las variables de entorno con eval $(minikube docker-env)
  2. Cree la imagen con el demonio Docker de Minikube (p. ej., docker build -t my-image . )
  3. Establezca la imagen en la especificación del pod como la etiqueta de compilación (p. ej., my-image )
  4. Establecer el imagePullPolicy a Never , de lo contrario, Kubernetes intentará descargar la imagen.

Nota importante: Tienes que ejecutar eval $(minikube docker-env) en cada terminal que desee usar, ya que solo establece las variables de entorno para la sesión de shell actual.


Lo que funcionó para mí, basado en la solución de @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. Cómo uso Vagrant con libvirt

  2. Cómo instalar Jenkins con Docker

  3. Cómo compartir imágenes de Docker con otros

  4. Cómo usar la exportación con Python en Linux

  5. Cómo usar la opción --since con el comando docker logs

Cómo crear imágenes de Docker con un Dockerfile en Ubuntu 18.04 LTS

Cómo crear imágenes de Docker con un Dockerfile en Ubuntu 20.04 LTS

Cómo usar Docker Scan para encontrar vulnerabilidades en sus imágenes

Cómo usar Docker Commit para cambiar imágenes de contenedores

Cómo implementar CouchDB como un clúster con Docker

Cómo instalar y usar Docker en AlmaLinux 8