GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Docker Parte 4:creación y publicación de imágenes docker personalizadas

En la primera y segunda parte, cubrimos los fundamentos de ejecutar un contenedor al preparar nuestro sistema para administrar contenedores acoplables y qué significa exactamente usar un contenedor acoplable contra otras tecnologías de virtualización desde una perspectiva técnica. Luego, en la tercera parte, nos pusimos manos a la obra con las imágenes de la ventana acoplable, aprendimos los conceptos básicos y creamos nuestro primer contenedor de Bloc de notas usando WordPress o DokuWiki.

En esta cuarta parte, veremos cómo se construyen las imágenes acoplables y crearemos nuestra propia imagen personalizada lista para descargar y compartir con nuestros amigos, colegas y comunidades.

Para este tutorial, usaremos la imagen Whale Docker. La ballena es la mascota oficial de Docker y la imagen de la ventana acoplable Whale se parece al programa cowsay que genera imágenes ASCII de una vaca en la terminal con un mensaje. También puede generar imágenes utilizando imágenes prefabricadas de otros animales, como Tux the Penguin, la mascota de Linux.

Introducción a los archivos Docker

En la parte anterior, nos presentamos a Docker Hub y aprendimos que es un recurso centralizado basado en la nube para el descubrimiento de imágenes de contenedores, la creación de imágenes y la distribución de esas imágenes. También aprendimos que una imagen acoplable es una imagen de varias capas sobre una imagen base. Dicho esto, el uso de una imagen base elimina la molestia de crear desde cero un sistema operativo adecuado para la imagen acoplable y nos brinda la opción de personalizar las capas superiores donde residirá nuestro software.

Para crear una imagen personalizada mediante el uso de una imagen base, debemos proporcionar al motor acoplable instrucciones sobre cómo instalar y configurar paquetes y archivos, y también algunas configuraciones que lo acompañan. Estas instrucciones están escritas en un archivo de texto sin formato llamado "dockerfile". Los Dockerfiles son como recetas que le entregas a un chef y él/ella te cocina una gran comida. Estos archivos docker se escriben utilizando un conjunto de pasos simple y descriptivo que se denominan "instrucciones". Cada instrucción crea una nueva capa en nuestra imagen. Las instrucciones incluyen acciones como ejecutar un comando, agregar un archivo o directorio, qué proceso ejecutar al iniciar un contenedor desde la imagen, etc. Este proceso es como si configurara una serie de comandos en un script de shell. Una vez que solicita la creación de una imagen, Docker lee el archivo docker, ejecuta las instrucciones y devuelve una imagen final.

Creando una imagen de Docker

Hay dos formas de crear su imagen de Docker personalizada. Puede compilarlo en su computadora o puede usar Docker Hub del que hablamos anteriormente. En esta parte, aprenderemos cómo crear nuestra imagen de Docker de forma local y luego publicarla en el Registro de Docker Hub.

Crear localmente usando un Dockerfile

Crearemos una imagen de Docker personalizada utilizando la imagen "Whale say", que es una pequeña imagen de Docker (basada en una imagen de Ubuntu) que, cuando la ejecuta, dice algo que usted programó para responderle.

Primero, inicie una terminal y cree una nueva carpeta escribiendo:

mkdir mywhale

Este directorio sirve como "contexto" para su compilación. El contexto simplemente significa que contiene todas las cosas que necesita para construir su imagen con éxito.

Entra en tu nueva carpeta con:

cd mywhale

y cree un Dockerfile en la carpeta escribiendo:

touch Dockerfile

Ahora debería ver el Dockerfile vacío que creamos si da el comando 'll':

ll
$ ll
total 8.0K
-rw-rw-r-- 1 user user 0 23:26 Dockerfile

Ábrelo con tu editor de texto favorito y agrega:

FROM docker/whalesay:latest

Esta primera línea de instrucción, con la palabra clave FROM, le dice a Docker en qué imagen se basa su imagen. Estás basando tu nuevo trabajo en la imagen de ballena existente.

La siguiente instrucción que agregaremos le dará la habilidad a nuestra ballena de decir la fortuna. Para realizar esta tarea, usaremos el paquete fortune que está disponible en los repositorios de Ubuntu (recuerde que la imagen de la ballena está basada en una imagen de Ubuntu). El programa de la fortuna tiene un comando que imprime dichos sabios para que los diga nuestra ballena.

Entonces, el primer paso es instalarlo. Para hacer esto, agregamos la instrucción habitual de instalación de apt:

RUN apt -y update && apt -y install fortunes

Una vez que la imagen tiene el software que necesita, le indica al software que se ejecute cuando se cargue la imagen. Para ello añadimos la siguiente instrucción:

CMD /usr/games/fortune -a | cowsay

La línea anterior le dice al programa Fortune que envíe una cotización elegida al azar al programa Cowsay

¡Y hemos terminado! Ahora guarde el archivo y salga.
Puede verificar lo que hizo ejecutando "cat Dockerfile" para que su Dockerfile se vea así:

cat Dockerfile
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

Ahora que todo (con suerte) se ve bien, es hora de crear nuestra imagen de Docker (no olvide el punto . en el y del comando).:

docker build -t my-docker-whale .

El comando anterior toma el Dockerfile en la carpeta actual y crea una imagen llamada "my-docker-whale" en su máquina local.

Puede verificar que su imagen de Docker esté almacenada en su computadora con:

docker images

Luego puede ejecutar su imagen de Docker escribiendo lo siguiente:

docker run my-docker-whale

Una vez que se ejecute, obtendrá algo como la siguiente imagen

Publicación de su imagen personalizada de Docker en Docker Hub

Su siguiente opción es publicar la imagen de Docker creada en el Repositorio de Docker Hub. Para hacerlo, deberá crear una cuenta en la página web de registro de Docker Hub donde proporcionará un nombre, contraseña y dirección de correo electrónico para su cuenta. También debo señalar que el servicio Docker Hub es gratuito para imágenes docker públicas. Una vez que haya creado su cuenta, puede enviar la imagen que creó anteriormente para que esté disponible para que otros la usen.

Para ello, necesitará el ID y la ETIQUETA de su imagen "my-docker-whale".

Ejecute nuevamente el comando "imágenes acoplables" y anote la ID y la ETIQUETA de su imagen Docker, p. a69f3f5e1a31.

Ahora, con el siguiente comando, prepararemos nuestra imagen de Docker para su viaje al mundo exterior (la parte del nombre de cuenta del comando es su nombre de cuenta en la página de perfil de Docker Hube):

docker tag a69f3f5e1a31 accountname/my-docker-whale:latest

Ejecute el comando "imágenes acoplables" y verifique su imagen recién etiquetada.

A continuación, utilice el comando "docker login" para iniciar sesión en Docker Hub desde la línea de comandos.

El formato para el comando de inicio de sesión es:

docker login --username=yourhubusername [email protected]

Cuando se le solicite, ingrese su contraseña y presione enter.

Ahora puede enviar su imagen al repositorio recién creado:

docker push accountname/my-docker-whale

El comando anterior puede tardar un poco en completarse dependiendo del ancho de banda de carga de su conexión, ya que carga algo así como 180ΜΒ de datos (en nuestro ejemplo). Una vez que se haya completado, puede ir a su perfil en Docker Hub y ver su nueva imagen.

Descargando su imagen personalizada

Si desea extraer su imagen de su repositorio de Docker Hub, primero deberá eliminar la imagen original de su máquina local porque Docker se negaría a extraerla del concentrador ya que las imágenes local y remota son idénticas.

Como recordarás de la parte anterior, para eliminar una imagen docker, debes ejecutar el comando "docker rmi". Puede usar una identificación o el nombre para eliminar una imagen:

docker rmi -f a69f3f5e1a31

Ahora que se eliminó la imagen, puede extraer y cargar la imagen desde su repositorio usando el comando "docker run" al incluir su nombre de cuenta de Docker Hub.

docker run accountname/my-docker-whale

Dado que anteriormente eliminamos la imagen y ya no estaba disponible en nuestro sistema local, Docker la descargará y la almacenará en la ubicación designada.

Resumen

En esta parte, aprendimos cómo crear un archivo Docker, escribir algunas instrucciones básicas y la construcción y la imagen usándolo como una receta. También cubrimos los conceptos básicos de enviar nuestra nueva imagen personalizada al registro de Docker Hub y extraerla a nuestra máquina local. En la siguiente parte de esta serie de tutoriales de Docker, mostraré cómo podemos automatizar el procedimiento de creación de imágenes para que podamos crear instantáneamente imágenes personalizadas en cualquier momento que las necesitemos. Estén atentos.


Docker
  1. Cómo mover imágenes de Docker entre hosts

  2. Cree, etiquete y cargue su propia imagen de Docker

  3. Cómo empaquetar y transferir imágenes de Docker de un servidor a otro

  4. Cómo modificar imágenes de Docker

  5. Cómo crear una imagen de Docker a partir de un contenedor y un archivo Docker

Mantenga sus imágenes de Docker manejables con Docker Image Prune

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

Guía completa para eliminar imágenes de Docker

Cómo crear una imagen Docker personalizada con Dockerfile

Compartir imágenes de Docker en Docker Hub

Cómo listar/buscar/extraer imágenes de la ventana acoplable en Linux