Práctica 9. Creación de un contenedor Docker con PostgreSQL

Apuntes de BD para DAW, DAM y ASIR

José Juan Sánchez Hernández

Curso 2023/2024



1 Creación de un contenedor Docker con PostgreSQL

1.1 Requisitos

Para poder ejecutar contenedores Docker es necesario tener instalado Docker Community Edition (CE) en nuestro equipo.

En la web oficial encontrará la información necesaria para realizar la instalación de Docker CE sobre Windows, macOS, Ubuntu, Debian, Fedora y CentOS.

1.2 Cómo crear un contenedor sin persistencia de datos

Un contenedor Docker que no tiene persistencia de datos quiere decir que cuando finalice la ejecución perderá todo el contenido que hayamos creado durante la ejecución. Es decir, si durante la ejecución del contenedor hemos creado varias bases de datos en PostgreSQL, éstas se perderán cuando el contenedor se detenga.

El comando que podríamos usar para lanzar nuestro contenedor Docker con PostgreSQL sin persistencia de datos podría ser el siguiente:

docker run -d --rm --name postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 postgres

1.3 Cómo conectarnos con el contenedor que está ejecutando PostgreSQL usando psql

Una vez que hemos creado la instancia del contenedor que está ejecutando PostgrSQL, podemos conectarnos a él para utilizar la herramienta psql.

docker run -it --rm --link postgres:postgres postgres psql -h postgres -U postgres

1.4 Cómo conectarnos con el contenedor que está ejecutando PostgreSQL usando adminer

Podemos crear un contenedor con Adminer para utilizar una interfaz web que nos permite conectar con PostgreSQL.

Para crear un contenedor con Adminer podemos ejecutar el siguiente comando:

docker run -d --rm  --link postgres:db -p 8080:8080 adminer

Una vez hecho esto, podríamos acceder a través de la URL http://127.0.0.1:8080 desde cualquier navegador web.

1.5 Cómo comprobar que los contenedores están en ejecución

Una vez que hemos iniciado los contenedores podemos comprobar que se están ejecutando con el siguiente comando:

docker ps

Deberíamos obtener una salida similar a esta.

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
a1e321c26d33        adminer             "entrypoint.sh docke…"   2 seconds ago       Up 1 second         0.0.0.0:8080->8080/tcp   admiring_poitras
4485390ebc31        postgres            "docker-entrypoint.s…"   59 seconds ago      Up 58 seconds       0.0.0.0:5432->5432/tcp   postgres

1.6 Cómo detener los contenedores

Para detener un contenedor en primer lugar tenemos que conocer cuál es su ID. Para obtenerlo podemos hacer uso del comando docker ps.

docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
a1e321c26d33        adminer             "entrypoint.sh docke…"   2 seconds ago       Up 1 second         0.0.0.0:8080->8080/tcp   admiring_poitras
4485390ebc31        postgres            "docker-entrypoint.s…"   59 seconds ago      Up 58 seconds       0.0.0.0:5432->5432/tcp   postgres

En la primera columna podemos ver cuál es el CONTAINER ID. Una vez localizado el identificador ejecutamos el comando docker stop y le pasamos como parámetro el identificador del contenedor que queremos detener.

Para el caso anterior deberíamos ejecutar:

docker stop a1e321c26d33
docker stop 4485390ebc31

1.7 Referencias

2 Licencia

Licencia de Creative Commons
Esta página forma parte del curso Bases de Datos de José Juan Sánchez Hernández y su contenido se distribuye bajo una licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.