Docker es una plataforma de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores.
Docker es una plataforma de software que utiliza la tecnología de contenedores para permitir el empaquetado, la distribución y la ejecución de aplicaciones de manera eficiente y portátil en entornos informáticos. Docker utiliza contenedores para encapsular aplicaciones y sus dependencias, incluidas las bibliotecas, archivos y herramientas necesarias para que la aplicación se ejecute de manera independiente.
Un contenedor es una unidad ligera y portátil que incluye todo lo necesario para ejecutar una aplicación, como el código, las bibliotecas y las dependencias.
Docker facilita la creación, distribución y ejecución de aplicaciones en entornos consistentes y aislados. Esto mejora la eficiencia del desarrollo y la implementación, ya que las aplicaciones empacadas en contenedores pueden ejecutarse de manera consistente en cualquier entorno que admita Docker.
¿Qué es un contenedor?
Un contenedor es una unidad ligera y portátil que incluye todo lo necesario para ejecutar una aplicación, haciéndola consistente y fácil de mover entre diferentes entornos. Son eficientes en recursos y proporcionan aislamiento para evitar conflictos entre aplicaciones
Los contenedores proporcionan un entorno aislado y consistente que garantiza que la aplicación funcione de la misma manera, independientemente del entorno de ejecución.
Docker permite empaquetar aplicaciones y sus dependencias en imágenes de contenedores. Una imagen de contenedor es un paquete ligero y autónomo que incluye todo lo necesario para ejecutar una aplicación, desde el código hasta las bibliotecas y los archivos de configuración.
Las imágenes de contenedores pueden distribuirse a través de repositorios, como Docker Hub, donde los desarrolladores pueden compartir y descargar imágenes públicas y privadas. Esto facilita la distribución y la colaboración en el desarrollo de aplicaciones.
Los siguientes conceptos son diferentes aunque en una aplicación real pueden usarse todos para desplegar tus aplicaciones:
- Microservicios: Son una forma de diseñar y construir aplicaciones que promueve la modularidad, la independencia, la escalabilidad y la flexibilidad
- Kubernetes: Es una herramienta poderosa para la gestión de contenedores y aplicaciones, que proporciona capacidades avanzadas de automatización, escalabilidad y gestión de recursos.
- Docker: Es una herramienta que te permite gestionar y publicar contenedores.
- Contenedores: Permiten que cualquier persona ejecute tu aplicación en su dispositivo sin importar el sistema operativo, el lenguaje de programación, etc.
- Images: Plantilla para la creación de contenedores.
- Volumes: Ayudan a persistir los datos que son creado dentro de un contenedor, esto debido a que si no se usa los datos se pierden cuando el contenedor se destruye, ya que son efímeros.
- Dev Environments: Son entornos de producción que ayudan a reducir los riesgos de versiones entre los equipos.
- Docker Scout: Es una herramienta para el monitoreo y gestión visual de los contenedores, permitiendo realizar acciones a través de una interfaz gráfica.
Ejemplo:
docker scout quickview <image_name>
Comandos útiles
docker --version
docker --help
docker info
Para comenzar necesitamos crear una imagen:
docker build -t website:latest .
Comandos para imágenes
Construir una imagen a partir de un archivo Dockerfile
docker build -t <nombre_de_imagen>
Construir una imagen desde un archivo Dockerfile sin la caché
docker build -t <nombre_de_imagen> . -no-cache
Listar imágenes locales
docker images
Eliminar una imagen
docker rmi <nombre_imagen>
Eliminar todas las imágenes no utilizadas
docker image prune
Comandos para contenedores
Crea y ejecuta un contenedor a partir de una imagen, con un nombre personalizado:
docker run --name <nombre_contenedor> <nombre_imagen>
Ejecutar un contenedor con y publicar un puerto(s) del contenedor al host.
docker run -p <puerto_host>:<puerto_contenedor> <nombre_imagen>
Ejecutar un contenedor en segundo plano
docker run -d <nombre_imagen>
Iniciar o detener un contenedor existente:
docker start|stop <nombre_del_contenedor> (o <id_del_contenedor>)
Eliminar un contenedor detenido:
docker rm <nombre_del_contenedor>
Abrir un shell dentro de un contenedor en ejecución:
docker exec -it <nombre_del_contenedor> sh
docker exec -it <nombre_del_contenedor> bash
Obtener y seguir los logs de un contenedor:
docker logs -f <nombre_contenedor>
Inspeccionar un contenedor en ejecución:
docker inspect <nombre_del_contenedor> (o <id_del_contenedor>)
Para listar los contenedores actualmente en ejecución:
docker ps
Listar todos los contenedores docker (en ejecución y parados):
docker ps --all
Ver las estadísticas de uso de recursos
docker container stats
Referencia: https://docs.docker.com/get-started/docker_cheatsheet.pdf
Deja un comentario