Tutorial de Docker: introducción a la popular plataforma de contenedores
En nuestro tutorial de Docker, explicamos la plataforma de virtualización Docker y te brindamos instrucciones fáciles de seguir sobre cómo utilizarla en tu sistema Ubuntu 22.04.
¡Prueba tu servidor virtual durante 30 días! Si lo solicitas, te reembolsaremos todos los gastos incurridos.
Docker: estructura y funciones
Con el eslogan “Build, Ship and Run Any App, Anywhere” la plataforma de contenedores de código abierto Docker promociona una alternativa flexible y eficiente a la emulación de componentes de hardware basada en máquinas virtuales (VM).
A diferencia de la virtualización tradicional de hardware, que implica iniciar diferentes sistemas huésped en un mismo sistema anfitrión (host), Docker permite que las aplicaciones se ejecuten como procesos aislados dentro del mismo sistema gracias a los contenedores. Por lo tanto, en la virtualización de servidores basada en contenedores, se logra una virtualización a nivel del sistema operativo.
La principal ventaja de la virtualización basada en contenedores radica en que las aplicaciones con diferentes requisitos pueden ejecutarse de forma aislada sin la sobrecarga de sistemas huésped separados. Además, las aplicaciones en contenedores se pueden utilizar de manera multiplataforma y en diversas infraestructuras, sin necesidad de adaptarlas a las configuraciones de hardware o software del sistema host.
Docker es el proyecto de software más conocido de los que ofrecen tecnología de virtualización basada en contenedores. La plataforma de código abierto consta de tres componentes principales: el motor Docker (Docker engine), las imágenes Docker y el repositorio Docker Hub.
Los contenedores e imágenes Docker suelen ser genéricos, pero también pueden personalizarse si es necesario. Puedes obtener más información al respecto en nuestro artículo sobre contenedores Docker.
Docker Images
De forma similar a las máquinas virtuales, los contenedores de Docker se basan en imágenes Docker, que son plantillas de solo lectura con todas las instrucciones necesarias para que el motor Docker cree un contenedor. Una imagen Docker es una representación portátil de un contenedor, presentada en forma de archivo de texto, es decir, un Dockerfile. Antes de iniciar un contenedor en un sistema, se carga un paquete con la imagen correspondiente, a menos que ya esté almacenada localmente. La imagen cargada contiene todos los sistemas de archivos con los parámetros necesarios para la ejecución. Un contenedor es esencialmente un proceso en ejecución de una imagen.
Docker Hub
El Docker Hub es un registro para repositorios de software en la nube, es decir, actúa como una especie de biblioteca para las imágenes Docker. Es un servicio en línea que contiene repositorios públicos y privados. Los repositorios públicos permiten a los usuarios subir sus propias imágenes y compartirlas con la comunidad. Aquí se encuentran numerosas imágenes Docker oficiales realizadas por el equipo de desarrolladores, así como proyectos de código abierto consolidados. Por el contrario, no todo el mundo tiene acceso a las imágenes de los repositorios privados, aunque sí se pueden compartir dentro de la misma empresa o en un determinado grupo. Al repositorio de Docker Hub se accede a través de hub.docker.com.
Motor Docker
El corazón de cualquier proyecto Docker es su motor, una aplicación cliente-servidor de código abierto disponible en todas las plataformas establecidas en la versión actual.
La arquitectura básica del motor Docker consta de tres componentes principales: un Docker daemon, que funciona como servidor, una interfaz de programación (API) basada en REST (Representational State Transfer) y la terminal del sistema operativo (Command-Line Interface, CLI) como interfaz de usuario (client).
- Docker daemon: el motor Docker utiliza un proceso daemon como servidor, que se ejecuta en segundo plano en el sistema host y permite el control central del motor. Además, se encarga de crear y administrar imágenes, contenedores o redes.
- La API REST: especifica un conjunto de interfaces que permite a otros programas interactuar y dar instrucciones al daemon . Uno de los cuales es la terminal del sistema operativo.
- La terminal: Docker utiliza la terminal del sistema operativo como programa cliente, la cual interacciona con el daemon a través de la API REST y permite a los usuarios controlar el daemon a través de scripts o comandos.
En 2017, el motor Docker fue renombrado como Docker Community Edition (abreviado como Docker CE), aunque la documentación oficial y los repositorios de Docker siguen usando en su mayoría el nombre antiguo. Además de Docker CE, también existe el Docker Enterprise Edition (Docker EE), que ofrece algunas características premium. Sin embargo, Docker EE no es gratuito y se orienta más hacia las empresas.
Con los comandos de Docker, los usuarios pueden ejecutar, detener o gestionar los contenedores de software directamente desde la terminal. Utilizando el comando docker
junto con instrucciones como build
(crear), pull
(descargar) o run
(ejecutar), es posible comunicarse con el daemon, permitiendo que el cliente y el servidor estén en el mismo sistema. Además, también es posible comunicarse con el daemon desde otro sistema. La comunicación entre el cliente y el servidor puede realizarse a través de la API REST, sockets UNIX o una interfaz de red, según el tipo de conexión requerida.
La siguiente imagen muestra cómo se combinan los componentes individuales de Docker, utilizando los comandos docker build
, docker pull
y docker run
como ejemplos:
El comando docker build
da instrucciones al daemon para crear una imagen (línea punteada), utilizando el Dockerfile correspondiente. El comando docker pull
(línea discontinua) se ejecuta cuando el usuario no ha creado la imagen, sino que la obtiene de un repositorio en Docker Hub. Si se ordena al daemon iniciar un contenedor con el comando docker run
, primero verifica si la imagen que se necesita está almacenada de forma local. Si es así, el contenedor se inicia (línea continua). En caso contrario, el daemon obtiene la imagen directamente del repositorio.
Tu propio servidor en un hardware dedicado, con integración en el cloud y facturación por minuto. Respaldados por procesadores Intel® Xeon® y AMD.
Trabajar con Docker
Ha llegado el momento de familiarizarse con las posibilidades de aplicación de la plataforma de contenedores. Si aún no has instalado el motor Docker, puedes hacerlo a través de la terminal de Linux. Puedes encontrar instrucciones sobre cómo hacerlo en nuestro artículo “instalar Docker en Ubuntu 22.04”. A continuación, aprenderás a manejar el motor Docker desde la consola, conocerás las capacidades de Docker Hub y comprenderás por qué los contendores representan una revolución en la gestión de aplicaciones.
Si quieres instalar Docker en otra distribución de Linux o en Windows, las siguientes guías te serán de gran ayuda:
Cómo manejar el motor Docker
Desde la versión 16.04, Ubuntu utiliza el programa systemd(abreviatura de “system aemon”) para gestionar procesos.systemdes un proceso init que también puede utilizarse en otras distribuciones de Linux como RHEL, CentOS o Fedora, y generalmente se identifica con el ID de proceso 1. Como primer proceso del sistema, el daemon es responsable de iniciar, detener y hacer el seguimiento del resto de procesos. En versiones previas de Ubuntu (14.10 y anteriores), el programaupstart se encargaba de dichas funciones.
También se puede controlar al Docker daemon a través de systemd. En la instalación estándar, la plataforma de contenedores está configurada para que el daemon se inicie automáticamente al arrancar el sistema. No obstante, el ajuste predeterminado se puede cambiar utilizando la herramienta systemctl de línea de comandos.
Con el objetivo de controlar un proceso o conocer su estado, puedes mandar órdenes a systemd mediante systemctl. La sintaxis de dicho comando es la siguiente:
systemctl [OPCIÓN] [COMANDO]
bashAlgunos comandos hacen referencia a determinados recursos, como Docker. La terminología de systemd se refiere a los recursos como units (unidades). En cuyo caso, el comando deriva de las instrucciones correspondientes y del nombre de la unidad a la que se dirige.
Si quieres activar (enable) o desactivar (disable) el inicio automático del Docker daemon, utiliza la herramienta systemctl con los siguientes comandos:
sudo systemctl enable docker
sudo systemctl disable docker
bashsystemctl también permite consultar el estado de una unidad:
sudo systemctl status docker
bashSi el motor Docker está activo en el sistema Ubuntu, la salida en la terminal debería ser la siguiente:
Si el motor Docker se encuentra desactivado, te aparecerá el estado como inactivo (dead) por lo que será necesario iniciar Docker daemon de forma manual para ejecutar los contenedores.
Si quieres iniciar, detener o reiniciar el motor Docker de forma manual, dirígete a systemd con uno de los siguientes comandos:
Para iniciar el daemon desactivado utiliza systemctl junto con el comando start
:
sudo systemctl start docker
bashSi lo que quieres es detener el Docker daemon, utiliza el comando stop
:
sudo systemctl stop docker
bashPara reiniciar el motor, utiliza restart
:
sudo systemctl restart docker
bashCómo usar Docker Hub
Si el motor Docker representa el corazón de la plataforma de contenedores, Docker Hub es el alma del proyecto de código abierto, ya que aquí es donde la comunidad se reúne. Los usuarios encuentran en el registro en la nube todo lo que necesitan para dar vida a la instalación de Docker.
El servicio en línea ofrece diversos repositorios oficiales con más de 100 000 aplicaciones gratuitas. Los usuarios también tienen la posibilidad de crear sus propias imágenes y compartirlas con grupos de trabajo. Además del soporte profesional que ofrece el equipo de desarrolladores, aquí también es posible conectarse con la comunidad de usuarios. En GitHub, los usuarios tienen acceso a un foro de soporte.
Registrarse en Docker Hub
Registrarse en Docker Hub es gratis y solo requiere una dirección de correo electrónico y un Docker ID propio, que luego se utilizará como nombre de espacio personal para el repositorio y permite acceder a todos los servicios de Docker. La oferta incluye Docker Hub, Docker Cloud, Docker Store y algunos programas Beta. Además, con el Docker ID, se obtiene acceso al centro de asistencia de Docker, así como al Docker Success Portal y a los foros de Docker.
Puedes registrarte siguiendo estos cinco pasos:
- Elige un Docker ID: en el registro debes elegir un nombre de usuario que más tarde va a convertirse en tu ID.
- Escribe tu dirección de correo electrónico: introduce una dirección de correo electrónico activa, ya que servirá para confirmar la inscripción en Docker Hub.
- Crea una contraseña: elige una contraseña.
- Envía la inscripción: haz clic sobre “Sign up” para confirmar tu inscripción. Si todos los datos se han completado correctamente, se envía un enlace de verificación a la dirección proporcionada.
- Confirma tu dirección de correo electrónico: confirma tu cuenta de correo haciendo clic en el enlace de verificación.
Después de registrarte, podrás acceder directamente a los servicios en línea del proyecto de Docker desde el navegador. Aquí puedes crear repositorios y grupos de trabajo, así como buscar recursos de acceso público a través de la función “Explore”.
También puedes registrarte directamente desde la consola del sistema operativo utilizando el comando docker login
. Puedes encontrar una explicación detallada del comando en la documentación de Docker.
En principio, los usuarios sin una cuenta ni Docker ID también pueden acceder a Docker Hub, aunque solo podrán descargar imágenes de los repositorios de acceso público y tienen vetado cargar (push) sus imágenes propias.
Crear repositorios en Docker Hub
La cuenta gratuita en Docker Hub incluye un repositorio de acceso privado y permite crear tantos repositorios de acceso público como quieras. No obstante, puedes desbloquear más repositorios de acceso privado con una actualización de pago.
Para crear un repositorio, sigue los siguientes pasos:
- Elige un espacio de nombres: cuando creas un repositorio, se le asigna automáticamente el espacio de nombres de tu Docker ID, aunque también se le puede asignar el de una organización a la que pertenezcas.
- Dale un nombre al repositorio: asigna un nombre al repositorio que estás creando.
- Añade una descripción: añade una descripción al repositorio.
- Configura la seguridad: decide si quieres crear un repositorio de acceso público (public) o uno al que solo puedas acceder tú o tu organización (private).
Haz clic en “Create” para confirmar la creación.
Crear equipos y organizaciones
A través de Docker Hub, Docker ofrece una plataforma en la nube donde se puede gestionar la creación de imágenes de manera centralizada y compartirlas fácilmente con grupos de trabajo, a los que Docker denomina organizaciones. Al igual que con las cuentas de usuario, las organizaciones también reciben un ID individual con los que descargar imágenes o compartirlas con otros usuarios. Los roles y permisos de cada miembro se organizan en equipos. De esta forma, por ejemplo, solo los usuarios que pertenecen al grupo “Owners” pueden crear repositorios privados o públicos y asignar permisos de acceso.
También puedes crear y gestionar los grupos de trabajo a través del panel de control. Para obtener más información sobre la gestión de equipos y organizaciones, consulta la documentación de Docker.
Cómo trabajar con imágenes y contenedores
Docker Hub es el punto de acceso primario para los recursos oficiales de Docker, y se convierte en el punto de partida para nuestra introducción a la gestión de imágenes y contenedores. Aquí, el equipo de desarrolladores presenta, entre otras, la imagen demo whalesay, que se utilizará como base en el tutorial de Docker que hay a continuación.
Descargar imágenes Docker
Para encontrar la imagen whalesay, accede a la página de inicio de Docker Hub e introduce el término whalesay en la barra de búsqueda que se encuentra a la derecha del logotipo de Docker.
En los resultados de la búsqueda, haz clic en el recurso etiquetado docker/whalesay, para acceder al repositorio público de esta imagen. Los repositorios Docker siempre tienen la misma estructura: en la parte superior, se muestra el título de la imagen, la categoría del repositorio y la fecha de última actualización (last pushed).
Cada repositorio Docker incluye también los siguientes apartados:
- Description: descripción detallada e instrucciones de uso.
-
Docker Pull Command: consola de línea de comandos para descargar imágenes del repositorio (
pull
). - Owner: información sobre el creador del repositorio.
- Comments: zona de comentarios al final de la página.
En las ventanas de información del repositorio aparece que whalesay es una modificación del script Perl de código abierto cowsay. El programa, desarrollado por Rony Monroe en el año 1999, genera una representación gráfica ASCII de una vaca que aparece en la terminal del usuario junto con un mensaje.
Para descargar la imagen docker/whalesay, utiliza el comando docker pull
con la siguiente estructura:
docker pull [OPTIONS] NAME [:TAG|@DIGEST]
bashEl comando docker pull
ordena al daemon descargar una imagen del repositorio. Para que pueda identificar la imagen, debes proporcionar su nombre (NAME). También puedes indicar a Docker cómo debe ejecutar el comando deseado mediante opciones (OPTIONS) y, de forma opcional, introducir tags (:TAG) o números de identificación únicos (@DIGEST) que permiten descargar una versión específica de una imagen.
Para crear una copia local de la imagen docker/whalesay, utiliza el siguiente comando:
docker pull docker/whalesay
bashPor lo general, no suele ser necesario, ya que cuando quieres iniciar un contenedor, Docker daemon descargará las imágenes automáticamente del repositorio si no las encuentra en el sistema local.
Iniciar imágenes de Docker como contenedores
Para iniciar una imagen de Docker, utiliza el comando docker run
con la siguiente estructura base:
docker run [OPTIONS] IMAGE [:TAG|@DIGEST] [CMD] [ARG…]
bashLa única parte obligatoria del comando docker run
es el nombre de la imagen de Docker que quieres iniciar. Sin embargo, al iniciar un contenedor, también puedes especificar otras opciones, TAGs y DIGEST. Además, puedes combinar el comando docker run
con otros comandos que se ejecutan al iniciar el contenedor. En este caso, se sobrescribe el comando CMD (COMMAND) establecido por el creador, que se ejecuta automáticamente al iniciar el contenedor. Con argumentos adicionales (ARG…), puedes definir otras configuraciones opcionales, como agregar usuarios o transferir variables de entorno (environment variables).
Utiliza el siguiente comando:
docker run docker/whalesay cowsay boo
bashpara descargar el script correspondiente de Perl como imagen y ejecutarlo en un contendor. Verás que whalesay se diferencia mucho del script original.
Al ejecutar la imagen docker/whalesay, el script muestra en la consola una gráfica ASCII en forma de ballena, así como el mensaje “boo” que genera el comando cowsay.
Similar a la prueba anterior, el daemon buscará primero la imagen en el directorio local de archivos. Si no encuentra un paquete con el mismo nombre, inicia una descarga desde el repositorio de Docker mediante un comando pull. Finalmente, el daemon iniciará el programa modificado de cowsay. Una vez finalizado, el contenedor se cerrará automáticamente.
Al igual que con cowsay, whalesay de Docker también permite intervenir en la salida de texto en la terminal. Prueba la función sustituyendo el mensaje “boo” en el comando de salida con otra cadena de caracteres, como un chiste de ballenas.
sudo docker run docker/whalesay cowsay What did the shark say to the whale? What are you blubbering about?
bashVisualizar todas las imágenes Docker en el sistema local
Para comprobar si has descargado una imagen específica, puedes acceder a una vista general de todas las imágenes en tu sistema local utilizando el siguiente comando:
sudo docker images
bashEl comando docker images
(o alternativamente docker image ls
) te muestra todas las imágenes locales junto con información sobre el tamaño del archivo, el tag y el ID de cada imagen.
Al iniciar un contenedor, la imagen subyacente se descarga del repositorio como una copia y se guarda permanentemente en tu ordenador, lo que te permite ahorrar tiempo en futuros accesos. Solo necesitarás una nueva descarga si cambia la fuente de la imagen, como ocurre cuando hay una versión actualizada disponible en el repositorio.
Visualizar todos los contenedores en el sistema local
Si quieres visualizar todos los contenedores que se están ejecutando o han sido ejecutados en el sistema, debes usar el comando ocker ps
junto con la opción --all
(abreviado como: -a
):
sudo docker ps -a
bashLa información obtenida en la terminal incluye el ID del contendor correspondiente, la imagen subyacente, el comando ejecutado para su inicio, la hora de inicio y su estado actual.
Si quieres ver solo los contendores que están actualmente en ejecución, utiliza el comando docker ps
sin ninguna opción:
sudo docker ps
bashNo obstante, ahora no deberías tener ningún contenedor ejecutándose en tu sistema.
Crear imágenes Docker
Ya sabes cómo encontrar imágenes en Docker Hub, descargarlas y ejecutarlas en cualquiera de los sistemas en los que esté instalado el motor Docker. Sin embargo, Docker no se limita únicamente a proporcionarte una amplia gama de aplicaciones en su repositorio; también te brinda un gran abanico de recursos para crear tus propias imágenes y compartirlas con otros desarrolladores.
En los capítulos introductorios de este artículo, hemos visto que cada imagen de Docker se construye sobre un Dockerfile, el cual funciona como un conjunto de instrucciones de montaje para imágenes. Dockerfile es un archivo de texto sencillo que contiene todas las instrucciones que Docker necesita para crear una imagen. En los siguientes apartados te explicaremos cómo escribir un Dockerfile y cómo indicar a Docker que lo utilice como punto de partida para crear tu propia imagen.
- Crea un nuevo directorio: el equipo de desarrolladores de Docker recomienda crear un directorio propio para cada Dockerfile, un proceso sencillo de realizar en la terminal de Linux. Utiliza el siguiente comando para crear un nuevo directorio con el nombre mydockerbuild:
mkdir mydockerbuild
bash-
Accede al nuevo directorio: para ello usa el comando
cd
.
cd mydockerbuild
bash- Crea un nuevo archivo de texto: los editores de texto como Nano y Vim te permiten crear archivos de texto desde la terminal de Ubuntu. Crea un archivo de texto con el nombre Dockerfile en tu directorio mydockerbuild.
nano Dockerfile
bash- Escribe el Dockerfile: el archivo de texto que acabas de crear va a contener las instrucciones necesarias para crear tu nueva imagen. En vez de programar la imagen desde cero, en este tutorial de Docker vamos a utilizar el comando FROM para utilizar la imagen docker/whalesay como plantilla para tu nueva imagen. Utiliza :latest como tag para indicar que debe coger la versión más actualizada de la imagen.
FROM docker/whalesay:latest
Hasta este momento, la funcionalidad de docker/whalesay se centra en permitir que el usuario elija las palabras que salen de la boca de la ballena, de modo que en la terminal aparezca exactamente ese texto junto al comando de inicio del contenedor. Sería mucho más interesante si el script generase automáticamente nuevas salidas de texto, lo cual es posible, gracias a programas como fortunes, que está disponible para el sistema Linux, y cuya función principal consiste en generar proverbios y aforismos entretenidos. Puedes actualizar el índice de paquetes locales e instalar fortunes con el siguiente comando:
RUN apt-get -y update && apt-get install -y fortunes
Finalmente, define una sentencia CMD que se ejecutará después del comando RUN, siempre y cuando no se haya reescrito con (docker run image CMD
). Utiliza el siguiente comando para ejecutar el programa fortunes con la opción -a
(“Elegir entre todas las bases de datos”) y mostrar la salida a través del programa cowsay en el terminal:
CMD /usr/games/fortune -a | cowsay
En este momento, el dockerfile debería tener el siguiente contenido:
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
Ten en cuenta lo siguiente: los comandos de un Dockerfile están limitados a una sola línea y siempre empiezan con una palabra clave. La sintaxis no distingue entre mayúsculas o minúsculas, aunque se ha establecido que las palabras clave deben ir escritas en mayúsculas.
- Guarda y cierra el archivo de texto: guarda tus entradas. Si utilizas el editor Nano, presiona la combinación de teclas [Ctrl] + [O] y confirma con [Enter] para guardar. Nano te comunicará que se han escrito tres líneas en el archivo seleccionado. Cierra el editor de texto con la combinación de teclas [Ctrl] + [X].
-
Crea imágenes a partir del Dockerfile: para crear una imagen a partir de un Dockerfile, dirígete primero al directorio en el que se encuentran los archivos de texto. La imagen se crea con el comando
docker build
. Si quieres asignar un nombre específico a la imagen de forma individual o proporcionarle un tag, utiliza la opción-t
junto con la combinación del nombre elegido y el tag. El formato estándar esname:tag
.
En el siguiente ejemplo se crea una imagen con el nombre docker-whale:
docker build -t docker-whale .
bashEl signo ortográfico del punto indica que el Dockerfile se encuentra en el directorio actual, aunque también tienes la posibilidad de añadir una ruta de archivos o un URL a los archivos original.
El proceso build comienza tan pronto como se haya confirmado el comando con [Enter]. Primero el Docker daemon comprueba si dispones de todos los archivos necesarios para crear una imagen, a los que se conoce como “Context” de acuerdo con la terminología de Docker. Luego, se ubica la imagen docker/whalesay con el Tag :latest. Si el Context necesario para la imagen está completo, el Docker daemon iniciará la plantilla incorporada de la imagen utilizando la instrucción FROM en un contenedor temporal y luego procederá con los siguientes comandos del Dockerfile. En este caso, el siguiente comando es un RUN que instala el programa fortunes.
Al finalizar cada paso en el proceso de creación de la imagen, Docker asigna un ID a la capa (layer) creada en ese paso. Es importante tener en cuenta que cada línea del Dockerfile se traduce en una capa de la imagen construida.
Cuando finaliza el comando RUN, el Docker daemon detiene el contenedor temporal que se utilizó para este propósito, lo elimina e inicia un nuevo contenedor temporal para la capa de la sentencia CMD. Una vez finalizado el proceso de construcción, el contenedor temporal se cerrará y eliminará. Docker mostrará el ID de la nueva imagen, tal que así:
Successfully built a8f2048c9ab8
La imagen recién creada aparecerá en la lista de imágenes almacenadas localmente con el nombre de docker-whale.
sudo docker images
bashPara iniciar un contenedor basado en la imagen que acabas de crear, utiliza el comando sudo docker run
seguido del nombre de tu imagen, tal que así:
sudo docker run docker-whale
bashSi la imagen se ha creado correctamente a partir del dockerfile, la ballena debería hablar elocuentemente y demostrar su sabiduría. Ten en cuenta que cada vez que inicies el contenedor, verás una frase diferente.
Hacer tagging a tus imágenes de Docker y subirlas a Docker Hub
Antes de poder subir a Docker Hub la imagen docker-whale que has creado y, de este modo, compartirla con la comunidad o con un grupo determinado, debes vincularla a un repositorio homónimo en tu espacio de nombres personal. El proceso de vincular se conoce como tagging en la terminología de Docker.
Sigue los siguientes pasos para publicar una imagen en Docker Hub:
- Crear un repositorio: regístrate en Docker Hub con tu Docker ID y tu contraseña personal. Luego, crea un repositorio público y llámalo docker-whale.
-
Obtener el ID de la imagen: utiliza el comando
docker images
para obtener el identificador de la imagen docker-whale que has creado.
En nuestro caso, el ID de la imagen es a8f2048c9ab8. Necesitamos el ID para taggear (etiquetar) la imagen en el siguiente paso.
-
Taggear la imagen: para taggear la imagen docker-whale, utiliza el comando
docker tag
con el siguiente esquema:
sudo docker tag [Image-ID][Docker-ID]/[Image-Name]:[TAG]
bashEn el ejemplo actual, el comando que debes introducir en la terminal para taggear es el siguiente:
sudo docker tag a8f2048c9ab8 [Namespace]/docker-whale:latest
bashPara comprobar si se ha taggeado la imagen correctamente, accede a la vista general con docker images
. En la lista, el nombre del repositorio debería de mostrar tu Docker ID.
-
Subir la imagen: primero inicia sesión en Docker Hub con el comando
docker login
:
sudo docker login
bashLa terminal te pedirá tu nombre de usuario (Docker ID) y contraseña.
Una vez dentro, introduce el comando docker push
para cargar la imagen en el repositorio que creaste:
sudo docker push [Namespace]/docker-whale
bashEl proceso de carga no debe de tardar más de unos segundos. La terminal te muestra el estado actual.
Podrás ver tu imagen si entras en Docker Hub desde el navegador.
Si quieres cargar múltiples imágenes en un mismo repositorio, utiliza tags diferentes para representar las distintas versiones de las imágenes. Por ejemplo:
[Namespace]/docker-whale:latest
[Namespace]/docker-whale:version1
[Namespace]/docker-whale:version2
En la pestaña “Tags” puedes acceder a una vista general de todas las versiones de imágenes disponibles en un repositorio.
Por el contrario, las imágenes de proyectos diferentes deben estar ubicadas en repositorios separados.
Una vez hayas subido la imagen con éxito, estará disponible en el repositorio público para todos los usuarios del mundo.
- Comprobación: verifica que la imagen se ha subido correctamente intentando descargarla.
Primero, elimina la versión local de la imagen para poder descargar una copia con el mismo tag, de lo contrario, Docker podría notificarte que la imagen que quieres ya se encuentra en su versión más actual.
Borra las imágenes locales de Docker utilizando el comando docker rmi
junto con el ID de la imagen, que se obtiene con docker images
. Si se produce algún conflicto, es decir, Docker te dice que el ID de la imagen se está utilizando en más repositorios o en un contenedor, puedes forzar la eliminación con la opción --force
(abreviado: -f
).
sudo docker rmi -f a8f2048c9ab8
bashVuelve a acceder a la vista general de todas las imágenes:
sudo docker Images
bashLos elementos eliminados no deberían aparecer en la salida de la terminal. Utiliza el comando Pull e indica el repositorio para descargar una copia nueva de la imagen desde Docker Hub:
sudo docker pull [Namespace]/€
bashMás temas y tutoriales sobre Docker
El universo Docker es amplio y variado. Con el tiempo, se ha desarrollado un ecosistema activo de herramientas relacionadas con Docker. Docker es particularmente interesante para los administradores, especialmente cuando se utilizan aplicaciones complejas que involucran varios contenedores en diferentes sistemas paralelos. Docker ofrece varias funciones para orquestar un clúster de semejante naturaleza. Puedes encontrar más detalles al respecto en nuestro artículo sobre [orquestación de contenedores Docker con Swarm y Compose Si quieres trabajar con Docker, puedes encontrar más tutoriales en la Digital Guide:
- Docker container volumes
- Tutorial de Docker Compose
Docker ofrece una versatilidad excepcional en diversos escenarios de aplicación. En nuestra Digital Guide encontrarás los siguientes tutoriales:
- Redis en contenedores Docker
- Instalar un servidor Teamspeak con Docker
Es importante reconocer que Docker no siempre es la opción más adecuada. En nuestro análisis de alternativas de Docker, exploramos alternativas clave. Adicionalmente, tenemos comparaciones directas entre algunas alternativas y Docker: