Docker es una poderosa herramienta que simplifica la gestión y el despliegue de aplicaciones al empaquetarlas en contenedores. En este tutorial, aprenderás los conceptos básicos de Docker y cómo empezar a utilizarlo con ejemplos prácticos.
1. Instalación de Docker
Descarga Docker Desktop e instálalo.
Instalación en Windows
Instalación en macOS
Instalación en Linux:
Ejecuta estos comandos para instalar Docker:
sudo apt update
sudo apt install docker.io
Inicia el servicio de Docker y configúralo para que se inicie automáticamente en el arranque:
sudo systemctl start docker
sudo systemctl enable docker
Añade tu usuario al grupo "docker" para ejecutar comandos Docker sin sudo (requiere cerrar sesión e iniciar sesión nuevamente):
sudo usermod -aG docker $USER
Verifica la instalación:
docker --version
2. Ejecución de tu Primer Contenedor
Hello World en Docker
Para verificar que Docker esté funcionando correctamente, ejecutemos un contenedor de prueba:
docker run hello-world
Docker descargará la imagen "hello-world" desde Docker Hub y la ejecutará en un contenedor. Deberías ver un mensaje que confirma que Docker está funcionando correctamente.
3. Trabajar con Imágenes
Buscar y Descargar Imágenes
Docker utiliza imágenes para crear contenedores. Puedes buscar imágenes en Docker Hub y descargarlas con el siguiente comando:
docker pull nombre-de-la-imagen
Por ejemplo, para descargar una imagen de Ubuntu, usa:
docker pull ubuntu
Crear tu Propia Imagen
Puedes crear tus propias imágenes personalizadas utilizando un archivo llamado Dockerfile. Aquí hay un ejemplo de Dockerfile para crear una imagen que ejecuta un servidor web Nginx:
# Usa una imagen base
FROM nginx:latest
# Copia tu archivo HTML personalizado al contenedor
COPY mi-archivo-html.html /usr/share/nginx/html/index.html
Luego, construye tu imagen:
docker build -t mi-servidor-web .
Subir una Imagen Personalizada a Docker Hub
Si deseas compartir tu imagen personalizada, puedes subirla a Docker Hub:
Crea una cuenta en Docker Hub.
Inicia sesión desde la línea de comandos:
docker login
Etiqueta tu imagen con tu nombre de usuario en Docker Hub:
docker tag mi-servidor-web nombre-de-usuario/mi-servidor-web
Sube tu imagen:
docker push nombre-de-usuario/mi-servidor-web
4. Gestionar Contenedores
- Listar y Ver Contenedores
Lista todos los contenedores en ejecución:
docker ps
Lista todos los contenedores, incluidos los detenidos:
docker ps -a
- Detener y Eliminar Contenedores
Detén un contenedor en ejecución:
docker stop nombre-o-ID-del-contenedor
Elimina un contenedor (debe estar detenido):
docker rm nombre-o-ID-del-contenedor
- Ver Registros de Contenedores Muestra los registros de un contenedor:
docker logs nombre-o-ID-del-contenedor
5. Persistencia de Datos
- Crear y Usar Volúmenes Para mantener datos importantes, como bases de datos, puedes crear y utilizar volúmenes en Docker.
Crea un volumen:
docker volume create nombre-del-volumen
- Ejecuta un contenedor y monta el volumen:
docker run -v nombre-del-volumen:/ruta-en-el-contenedor -d nombre-de-la-imagen
6. Redes en Docker
Gestionar Redes en Docker
Docker crea automáticamente una red para los contenedores, pero puedes crear tus propias redes para aislar contenedores o conectarlos.
Lista las redes en Docker:
docker network ls
Crea una red personalizada:
docker network create nombre-de-la-red
Ejecuta un contenedor en una red específica:
docker run --network nombre-de-la-red -d nombre-de-la-imagen
7. Docker Compose
Orquestar Múltiples Contenedores con Docker Compose
Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker con múltiples contenedores. Puedes definir la configuración de tus servicios en un archivo docker-compose.yml.
Ejemplo de un archivo docker-compose.yml para un WordPress:
version: '3'
services:
wordpress:
image: wordpress
ports:
- "8080:80"
environment:
WORDPRESS_DB_PASSWORD: example
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
Ejecuta la aplicación con Docker Compose:
docker-compose up -d
8. Conclusiones
¡Felicidades! Ahora tienes una comprensión sólida de los conceptos básicos de Docker. Puedes utilizar este tutorial como referencia mientras exploras más características y casos de uso avanzados de Docker. La contenerización simplificará el desarrollo y la implementación de aplicaciones, permitiéndote trabajar de manera más eficiente en entornos de desarrollo y producción. ¡Buena suerte con tus proyectos en Docker!
Cualquier duda o sugerencia para próximos post serán totalmente bienvenidas!
Top comments (2)
Gracias, muy interesante
Me alegro que te haya gustado!😃
Some comments have been hidden by the post's author - find out more