Introducción

En este tema, exploraremos cómo PowerShell puede ser utilizado para interactuar y gestionar contenedores Docker. Docker es una plataforma que permite a los desarrolladores empaquetar aplicaciones en contenedores, que son entornos ligeros y portátiles. PowerShell, con su capacidad de automatización y scripting, es una herramienta poderosa para gestionar estos contenedores de manera eficiente.

Contenidos

Instalación de Docker

Antes de comenzar a trabajar con Docker en PowerShell, necesitamos instalar Docker en nuestro sistema.

Pasos para la Instalación

  1. Descargar Docker Desktop:

    • Visita el sitio web oficial de Docker: Docker Desktop.
    • Descarga la versión correspondiente a tu sistema operativo (Windows o macOS).
  2. Instalar Docker Desktop:

    • Ejecuta el instalador descargado y sigue las instrucciones en pantalla.
    • Asegúrate de habilitar la integración con WSL 2 (Windows Subsystem for Linux) si estás en Windows.
  3. Verificar la Instalación:

    • Abre PowerShell y ejecuta el siguiente comando para verificar que Docker está instalado correctamente:
      docker --version
      
    • Deberías ver la versión de Docker instalada.

Comandos Básicos de Docker en PowerShell

Una vez que Docker está instalado, podemos comenzar a utilizar comandos Docker desde PowerShell.

Comandos Esenciales

  1. Verificar el Estado de Docker:

    docker info
    

    Este comando proporciona información detallada sobre la configuración y el estado actual de Docker.

  2. Listar Contenedores:

    docker ps
    

    Muestra una lista de contenedores en ejecución. Para ver todos los contenedores (incluidos los detenidos), usa:

    docker ps -a
    
  3. Listar Imágenes:

    docker images
    

    Muestra una lista de todas las imágenes Docker disponibles en tu sistema.

Creación y Gestión de Contenedores

Crear un Contenedor

Para crear y ejecutar un contenedor, utilizamos el comando docker run. Por ejemplo, para ejecutar un contenedor con la imagen nginx:

docker run -d -p 80:80 --name mynginx nginx
  • -d: Ejecuta el contenedor en segundo plano (detached mode).
  • -p 80:80: Mapea el puerto 80 del contenedor al puerto 80 del host.
  • --name mynginx: Asigna un nombre al contenedor.
  • nginx: Especifica la imagen a utilizar.

Detener y Eliminar Contenedores

  1. Detener un Contenedor:

    docker stop mynginx
    
  2. Eliminar un Contenedor:

    docker rm mynginx
    

Trabajando con Imágenes Docker

Descargar Imágenes

Para descargar una imagen desde Docker Hub:

docker pull ubuntu

Crear una Imagen Personalizada

Podemos crear una imagen personalizada utilizando un Dockerfile. Un Dockerfile es un archivo de texto que contiene instrucciones para construir una imagen Docker.

Ejemplo de Dockerfile

# Utiliza una imagen base de Ubuntu
FROM ubuntu:latest

# Instala Apache
RUN apt-get update && apt-get install -y apache2

# Copia el contenido del directorio actual al contenedor
COPY . /var/www/html

# Expone el puerto 80
EXPOSE 80

# Comando para ejecutar Apache
CMD ["apache2ctl", "-D", "FOREGROUND"]

Construir una Imagen

Para construir una imagen a partir de un Dockerfile:

docker build -t myapache .
  • -t myapache: Asigna un nombre y etiqueta a la imagen.
  • .: Especifica el directorio actual como contexto de construcción.

Automatización de Tareas Docker con PowerShell

PowerShell puede ser utilizado para automatizar tareas Docker mediante scripts. Aquí hay un ejemplo de un script que crea y ejecuta un contenedor, y luego limpia los recursos.

Ejemplo de Script PowerShell

# Descargar la imagen de nginx
docker pull nginx

# Crear y ejecutar un contenedor
docker run -d -p 8080:80 --name mynginx nginx

# Esperar 10 segundos
Start-Sleep -Seconds 10

# Detener el contenedor
docker stop mynginx

# Eliminar el contenedor
docker rm mynginx

# Eliminar la imagen
docker rmi nginx

Ejercicios Prácticos

Ejercicio 1: Crear y Ejecutar un Contenedor

  1. Descarga la imagen hello-world desde Docker Hub.
  2. Crea y ejecuta un contenedor utilizando la imagen hello-world.
  3. Verifica que el contenedor se ha ejecutado correctamente.

Ejercicio 2: Crear una Imagen Personalizada

  1. Crea un Dockerfile que instale nginx en una imagen base de alpine.
  2. Construye la imagen utilizando el Dockerfile.
  3. Ejecuta un contenedor utilizando la imagen personalizada y verifica que nginx está funcionando.

Soluciones

Solución Ejercicio 1

  1. Descargar la imagen:

    docker pull hello-world
    
  2. Crear y ejecutar el contenedor:

    docker run hello-world
    
  3. Verificar la ejecución:

    • Deberías ver un mensaje de bienvenida de Docker en la consola.

Solución Ejercicio 2

  1. Crear un Dockerfile:

    FROM alpine:latest
    RUN apk add --no-cache nginx
    CMD ["nginx", "-g", "daemon off;"]
    
  2. Construir la imagen:

    docker build -t mynginx .
    
  3. Ejecutar el contenedor:

    docker run -d -p 8080:80 mynginx
    
  4. Verificar que nginx está funcionando:

    • Abre un navegador web y navega a http://localhost:8080.

Conclusión

En este tema, hemos aprendido cómo utilizar PowerShell para interactuar y gestionar contenedores Docker. Hemos cubierto desde la instalación de Docker hasta la creación y gestión de contenedores e imágenes, así como la automatización de tareas Docker con scripts de PowerShell. Con estos conocimientos, puedes empezar a integrar Docker en tus flujos de trabajo de PowerShell para mejorar la eficiencia y la portabilidad de tus aplicaciones.

Curso de PowerShell

Módulo 1: Introducción a PowerShell

Módulo 2: Scripting Básico

Módulo 3: Trabajando con Objetos

Módulo 4: Técnicas Avanzadas de Scripting

Módulo 5: Automatización y Programación de Tareas

Módulo 6: PowerShell Remoting

Módulo 7: Funcionalidades Avanzadas de PowerShell

Módulo 8: PowerShell y DevOps

Módulo 9: Mejores Prácticas y Consejos Avanzados

© Copyright 2024. Todos los derechos reservados