Postgres en Docker

Este artículo te sirve para ejecutar SQL Server en Docker. Se asume que has aprendido ya los scripts que utilizamos para crear imagen de docker en SQL Server. Esta vez, creaemos la imagen sobre un volumen (mount point).

Para ello necesitas:


Tabla de Contenidos
  1. Postgres en Docker
    1. Crear volumen
    2. Crear contenedor postgreSQL
    3. Iniciar el contenedor
    4. Listar contenedores en marcha
    5. Listar contenedores (apagados también)
    6. Parar el contenedor
    7. Borrar contenedor
    8. borrrar volumen
    9. Videos adicionales

Crear volumen

Este comando creará un volumen llamado vol_docker20 que utilizará la ruta C:\VMs\postgres20_data en tu sistema Windows como su ubicación de almacenamiento.

docker volume create `
  --driver "local" `
  --opt "type=none" `
  --opt "device=C:\VMs\postgres20_data" `
  --opt "o=bind" `
  vol_docker20

Desglose del comando:

  • –driver local: Utiliza el driver local para el volumen.
  • –opt type=none: No especifica un tipo de sistema de archivos, ya que estamos usando una ubicación existente.
  • –opt device=”C:\VMs\postgres20_data”: Especifica la ruta concreta en el host (Windows) donde se almacenará el volumen.
  • –opt o=bind: Usa la opción de bind mount para enlazar la ruta especificada en el host al volumen de Docker.
  • vol_docker20: El nombre que deseas asignar al volumen.

Crear contenedor postgreSQL

docker create `
  --name postgres20 `
  -e POSTGRES_PASSWORD=P@ssword! `
  -v vol_docker20:/var/lib/postgresql/data `
  -p 5555:5432 `
  postgres

Desglose del comando:

  • docker create: Crea un contenedor a partir de una imagen pero no lo inicia.
  • –name postgres20: Asigna el nombre postgres20 al contenedor.
  • -e POSTGRES_PASSWORD=P@ssword!: Establece la variable de entorno POSTGRES_PASSWORD para definir la contraseña del usuario postgres.
  • -v vol_docker20:/var/lib/postgresql/data: Monta el volumen vol_docker20 en el directorio /var/lib/postgresql/data del contenedor. Esta es la ruta por defecto donde PostgreSQL almacena sus datos. postgres: Especifica la imagen de Docker para PostgreSQL que se utilizará (la imagen oficial).
  • -p 5555:5432: Mapea el puerto 5432 del contenedor (puerto por defecto de PostgreSQL) al puerto 5555 en el host. Esto significa que podrás acceder a PostgreSQL desde tu máquina host en el puerto 5555.

Iniciar el contenedor

docker start postgres20

Listar contenedores en marcha

docker ps

Listar contenedores (apagados también)

docker ps -a

Parar el contenedor

docker stop -t 15 postgres20

Este comando envía una señal al contenedor postgres20 para detenerse de manera ordenada. Si el contenedor no se detiene después de un tiempo predeterminado (10 segundos por defecto), Docker lo forzará a detenerse. Si deseas ajustar este tiempo de espera, puedes usar el parámetro -t seguido del número de segundos para definir el tiempo de espera antes de forzar la detención. Por ejemplo:

Borrar contenedor

docker rm postgres20

borrrar volumen

docker volume rm vol_docker20

Borrar el volumen no implica que se borre el contenido en el sistema de archivos.

Videos adicionales