Este tutorial detallado de Docker cubre los conceptos básicos de los comandos de Docker, por ejemplo, cómo crear un nuevo contenedor, cómo ejecutar el contenedor, eliminar un contenedor, cómo crear su propia imagen de Docker desde el contenedor, etc. ¡Empecemos!
Si aún no ha instalado Docker, consulte las siguientes guías:
- Cómo instalar Docker en CentOS
- Cómo instalar Docker en Ubuntu
Primeros pasos con Docker en Linux
Todos los pasos que se indican a continuación se prueban en la edición del servidor Ubuntu 18.04 LTS.
Antes de comenzar con Docker, permítanme aclarar qué es una imagen de Docker y un contenedor de Docker.
Una imagen de Docker es el archivo que decide cómo debe comportarse un contenedor, y el contenedor de Docker es la etapa en ejecución o parada de una imagen de Docker.
Los contenedores están aislados del resto de archivos del host.
Cuando ejecutamos un contenedor de Docker, utiliza un sistema de archivos aislado proporcionado por una imagen de Docker. La imagen de Docker consta de todo lo necesario para ejecutar una aplicación:todas las dependencias, configuración, scripts, archivos binarios, etc.
La imagen también contiene otra configuración para el contenedor, como variables de entorno, un comando predeterminado para ejecutar y otros metadatos.
1. Buscar imágenes de Docker
Podemos obtener las imágenes desde el registro, por ejemplo Docker hub , o crear el nuestro propio, Para aquellos que se preguntan, Docker hub es un repositorio central en línea donde todos los usuarios de Docker compilan, prueban y guardan sus imágenes de Docker.
Docker hub tiene decenas de miles de imágenes de Docker. Puede buscar cualquier imagen de Docker con "docker search"
comando.
Por ejemplo, para buscar imágenes acoplables basadas en Ubuntu, ejecute:
$ sudo docker buscar ubuntu
Salida de muestra:
Para buscar imágenes basadas en CentOS, ejecute:
$ sudo docker buscar ubuntu
Para buscar imágenes para AWS, ejecute:
$ sudo docker búsqueda aws
Para WordPress:
$ sudo docker buscar wordpress
Docker hub tiene casi todo tipo de imágenes. Ya sea un sistema operativo, una aplicación o cualquier cosa, encontrará imágenes de Docker preconstruidas en Docker hub.
Si algo que está buscando no está disponible, puede crearlo y ponerlo a disposición del público o mantenerlo privado para su propio uso.
2. Descargar imagen de Docker
Para descargar la imagen de Docker para el sistema operativo Ubuntu, ejecute el siguiente comando desde la Terminal:
$ sudo docker pull ubuntu
El comando anterior descargará la última imagen de Ubuntu del Docker hub .
Salida de muestra:
Uso de etiqueta predeterminada:latestlatest:Tirando de la biblioteca / ubuntu6abc03819f3e:Tire 05731e63f211 completa:Tire completa 0bd67c50d6be:Tire digestión completa:sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b53000a5Status:Descargado imagen más reciente de Ubuntu:últimas
También puede descargar una versión específica de la imagen de Ubuntu usando el comando:
$ docker pull ubuntu:18.04
Docker nos permite descargar cualquier imagen e iniciar el contenedor independientemente del sistema operativo host.
Por ejemplo, para descargar la imagen de CentOS, ejecute:
$ sudo docker pull centos
Todas las imágenes de Docker descargadas se guardarán en /var/lib/docker/
directorio.
Para ver la lista de imágenes de Docker descargadas, ejecute:
$ sudo docker imágenes
Salida de muestra:
ID DE IMAGEN DE ETIQUETA DE REPOSITOR CREADA TAMAÑOubuntu más reciente 7698f282e524 Hace 14 horas 69,9 MBcentos Más reciente 9f38484d220f Hace 2 meses 202 MBhello-world Más reciente fce289e99eb9 Hace 4 meses 1,84 kB
Como puede ver arriba, descargué tres imágenes de Docker:Ubuntu , Cent OS y hola-mundo .
Ahora, avancemos y veamos cómo iniciar o ejecutar los contenedores en función de las imágenes descargadas.
3. Ejecutar contenedores Docker
Podemos iniciar un contenedor de dos maneras, ya sea usando su TAG o ID DE IMAGEN .
ETIQUETA se refiere a una instantánea particular de la imagen y el ID DE LA IMAGEN es el identificador único correspondiente para esa imagen.
Como en los resultados anteriores "latest"
es la ETIQUETA de todos los contenedores y 7698f282e524
es el IDENTIFICADOR DE IMAGEN de Ubuntu Imagen de Docker, 9f38484d220f
es la identificación de la imagen de CentOS Docker y fce289e99eb9
es la identificación de la imagen de hello_world Imagen acoplable.
Una vez que haya descargado las imágenes de Docker de su elección, ejecute el siguiente comando para iniciar un contenedor de Docker utilizando su ETIQUETA.
$ sudo docker run -t -i ubuntu:último /bin/bash
Aquí,
-t
:Asigna una nueva Pseudo Terminal dentro del contenedor de Ubuntu.-i
: nos permite hacer una conexión interactiva tomando el estándar en (STDIN) del contenedor.ubuntu:latest
:contenedor de Ubuntu con la ETIQUETA "más reciente"./bin/bash
:shell BASH para el nuevo contenedor.
O bien, puede iniciar el contenedor utilizando IMAGE ID como se muestra a continuación:
$ sudo docker run -t -i 7698f282e524 /bin/bash
Aquí,
7698f282e524 - Identificación de la imagen
Después de iniciar el contenedor, aterrizará automáticamente en el caparazón del contenedor (símbolo del sistema):
Para volver a la Terminal del sistema host (en mi caso, es Ubuntu 18.04 LTS) sin terminar el Contenedor (sistema operativo invitado), presione CTRL+P
seguido de CTRL+Q
.
Ahora, regresará de manera segura a la ventana de terminal de su computadora host original. Tenga en cuenta que el contenedor aún se ejecuta en segundo plano y aún no lo finalizamos.
Para ver la lista de contenedores en ejecución, ejecute el siguiente comando:
$ sudo docker ps
Salida de muestra:
ID DEL CONTENEDOR IMAGEN COMANDO CREADO ESTADO PUERTOS NOMBRES32fc32ad0d54 ubuntu:latest "/bin/bash" Hace 7 minutos Hasta 7 minutos modest_jones
Aquí,
32fc32ad0d54
- Identificación del contenedorubuntu:latest
- Imagen acoplable
Tenga en cuenta que el ID de contenedor y el ID de imagen de Docker son diferentes .
Para enumerar todos los contenedores disponibles (ya sea en ejecución o detenidos), ejecute:
$ sudo docker ps -a
Para detener (apagar el contenedor) desde el shell del host, ejecute el siguiente comando:
$ sudo docker stop
Ejemplo:
$ sudo ventana acoplable parada 32fc32ad0d54
Para volver a iniciar sesión o conectarse al contenedor en ejecución, simplemente ejecute:
$ sudo docker adjuntar 32fc32ad0d54
Como ya sabes, 32fc32ad0d54
es el ID del contenedor.
Para apagar un contenedor desde el interior de su caparazón, escriba el siguiente comando:
# salida
Puede verificar la lista de contenedores en ejecución con el comando:
$ sudo docker ps
4. Cree sus imágenes de Docker personalizadas
Docker no es solo para descargar y usar los contenedores existentes. También puede crear su propia imagen acoplable personalizada.
Para hacerlo, inicie un contenedor:
$ sudo docker run -t -i ubuntu:último /bin/bash
Ahora, estarás en el caparazón del contenedor.
Luego, instale cualquier software o haga lo que quiera en el contenedor.
Por ejemplo, instalemos servidor web Apache en el contenedor.
# apt actualizar# apt instalar apache2
Del mismo modo, instale y pruebe cualquier software de su elección en el Contenedor.
Una vez que esté todo listo, regrese al shell del sistema host. No detenga ni apague el Contenedor. Para cambiar al shell del sistema host sin detener Container, presione CTRL+P
seguido de CTRL+Q
.
Desde el shell de su computadora host, ejecute el siguiente comando para encontrar el ID del contenedor:
$ sudo docker ps
Finalmente, cree una imagen de Docker del Contenedor en ejecución usando el comando:
$ sudo docker commit 3d24b3de0bfc ostechnix/ubuntu_apache
Resultado de muestra:
sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962
Aquí,
3d24b3de0bfc
– Identificación del contenedor de Ubuntu.ostechnix
– Nombre del usuario que creó el contenedor.ubuntu_apache
– Nombre de la imagen acoplable creada por el usuario ostechnix.
Verifiquemos si la nueva imagen de Docker se crea o no con el comando:
$ sudo docker imágenes
Salida de muestra:
ID DE IMAGEN DE ETIQUETA DE REPOSITOR CREADA TAMAÑOostechnix/ubuntu_apache último ce5aa74a48f1 Hace aproximadamente un minuto 191 MB ubuntu último 7698f282e524 Hace 15 horas 69.9MBcentos Último 9f38484d220f Hace 2 meses 202MBhello-world Último fce289e99eb9 Hace 4 meses 1.84kB
Como puede ver en el resultado anterior, la nueva imagen de Docker se ha creado en nuestro sistema localhost desde el contenedor en ejecución.
Ahora, puede crear un nuevo Contenedor a partir de la imagen de Docker recién creada como de costumbre con el comando:
$ sudo docker run -t -i ostechnix/ubuntu_apache /bin/bash
5. Eliminación de contenedores
Una vez que haya terminado toda la I+D con contenedores Docker, puede eliminarlos si ya no los quiere.
Para hacerlo, primero debemos detener (apagar) los contenedores en ejecución.
Averigüemos los contenedores en ejecución con el comando:
$ sudo docker ps
Salida de muestra:
ID DEL CONTENEDOR IMAGEN COMANDO CREADO ESTADO PUERTOS NOMBRES3d24b3de0bfc ubuntu:latest "/bin/bash" Hace 28 minutos Hasta 28 minutos goofy_easley
Detenga el contenedor en ejecución usando su ID:
$ sudo docker parada 3d24b3de0bfc
Ahora, elimine el contenedor usando el comando:
$ sudo docker rm 3d24b3de0bfc
Del mismo modo, detenga todos los contenedores y elimínelos si ya no son necesarios.
Eliminar varios contenedores uno por uno puede ser una tarea tediosa. Entonces, podemos eliminar todos los contenedores detenidos de una sola vez, simplemente ejecute:
$ sudo docker container prune
Escribe "Y"
y presiona ENTER
tecla para borrar los contenedores.
¡ADVERTENCIA! Esto eliminará todos los contenedores detenidos. ¿Está seguro de que desea continuar? [s/n] sí Contenedores eliminados:32fc32ad0d5445f2dfd0d46121251c7b5a2aea06bb22588fb2594ddbe46e65645ec614e0302061469ece212f0dba303c8fe99889389749e6220fe891997f38d0Total de espacio reclamado:5BEste comando solo funcionará con las últimas versiones de Docker.
6. Eliminar imágenes de Docker
Una vez que eliminó los contenedores, puede eliminar las imágenes de Docker que ya no necesita.
Para encontrar la lista de imágenes de Docker descargadas:
$ sudo docker imágenesSalida de muestra:
ID DE IMAGEN DE ETIQUETA DE REPOSITOR CREADA TAMAÑOostechnix/ubuntu_apache última ce5aa74a48f1 hace 5 minutos 191MBubuntu última 7698f282e524 hace 15 horas 69.9MBcentos última 9f38484d220f hace 2 meses 202MBhello-world última fce289e99eb9 hace 4 meses1.8Como puede ver arriba, tenemos tres imágenes de Docker en nuestro sistema host.
Permítanos eliminarlos usando su ID de IMAGEN:
$ sudo docker rmi ce5aa74a48f1Salida de muestra:
Untagged:ostechnix / ubuntu_apache:latestDeleted:sha256:ce5aa74a48f1e01ea312165887d30691a59caa0d99a2a4aa5116ae124f02f962Deleted:sha256:d21c926f11a64b811dc75391bbe0191b50b8fe142419f7616b3cee70229f14cdResolución de problemas
Docker no le permitirá eliminar las imágenes de Docker si las utilizan contenedores en ejecución o detenidos.
Por ejemplo, cuando intento eliminar una imagen de Docker con ID
b72889fa879c
, desde uno de mis antiguos servidores Ubuntu. Recibí el siguiente error:Respuesta de error del daemon:conflicto:no se puede eliminar b72889fa879c (debe forzarse):la imagen está siendo utilizada por el contenedor detenido dde4dd285377Esto se debe a que otro contenedor está utilizando la imagen de Docker que desea eliminar.
Entonces, verifiquemos el Contenedor en ejecución usando el comando:
$ sudo docker psSalida de muestra:
¡Ups! No hay ningún contenedor en ejecución.
Verifiquemos nuevamente todos los contenedores (en ejecución y detenidos) con el comando:
$ sudo docker ps -aSalida de muestra:
Como puede ver, todavía hay algunos contenedores detenidos que usan una de las imágenes de Docker. Entonces, eliminemos todos los contenedores.
Ejemplo:
$ sudo ventana acoplable rm 12e892156219Del mismo modo, elimine todos los contenedores como se muestra arriba usando la identificación de su contenedor respectivo.
Una vez que eliminó todos los contenedores, finalmente elimine las imágenes de Docker.
Ejemplo:
$ sudo docker rmi b72889fa879cEso es todo. Ahora verifique si hay otras imágenes de Docker en el host con el comando:
$ sudo docker imágenesAhora probablemente no verá ninguna imagen acoplable.
Leer a continuación:
- Explicación de los conceptos de red de Docker
- Explicación de los volúmenes de Docker con ejemplos
- Una breve introducción a Dockerfile
- Introducción a Docker Compose en Linux
- Cómo ejecutar Docker como usuario no root en Linux
- Tutorial de Podman:comience a utilizar Podman
Conclusión
En este completo tutorial de introducción a Docker, explicamos los conceptos básicos de Docker, como la creación, ejecución, búsqueda, eliminación de contenedores y también la creación de una imagen propia de Docker a partir del contenedor.
Espero que tenga una idea básica sobre el uso de Docker.
Para obtener más detalles, consulte los enlaces de recursos oficiales que se encuentran al final de esta guía o deje un comentario en la sección de comentarios a continuación.
Descargar libros electrónicos gratuitos de Docker:
Download - Free eBook: "Docker Containerization Cookbook"
Download - Free Guide: "Understanding Docker"
Download - Free Guide: "What is Docker and Why is it So Popular?"
Download - Free Guide: "Introduction to Docker"
Download - Free Guide: "Docker in Production"
Lectura sugerida:
- Cómo actualizar automáticamente los contenedores de Docker en ejecución
- ctop:una herramienta de supervisión de línea de comandos para contenedores de Linux
- Portainer:la forma más sencilla de administrar Docker
- PiCluster:una sencilla aplicación de gestión de Docker basada en web
- Dockly - Administrar contenedores Docker desde la terminal