En el siguiente tutorial se verá como utilizar docker para desplegar PostgreSQL, un sistema de gestión de base de datos relacionales.
Docker es una tecnología de gestión de contenedores de software que nos permitirá levantar nuestras aplicaciones independiente del sistema operativo, mas detalles acerca de su uso se puede revisar en los siguiente enlace
Descarga desde dockerhub
Dockerhub es una comunidad donde están las imágenes de diferentes servicios y aplicaciones que nos permitirán desplegar nuestros servicios, podemos acceder a https://hub.docker.com/_/postgres/ y verificar la versión que usaremos.
Descarga de imágen de Postgres
Para el post usaremos la ultima version estable a la fecha de PostgreSQL, 10.3
[root@localhost home]# docker pull postgres:10.3
Verificación de imágen
[root@localhost home]# docker images | grep postgres postgres 10.3 5c5aa9a16b8b 2 weeks ago 264MB
Uso de docker run, mapeo de rutas
docker run [opciones] [imagen] [comandos] [árgumentos]
[root@localhost home]# docker run -p 5432:5432 --name postgres103 -v /opt/postgres:/var/lib/postgresql/data -e POSTGRES_PASSWORD=secret -d postgres:10.3
Explicaremos los parámetros usados al ejecutar docker run
- -p 5432:5432 -> Se especifica el puerto que usará el servidor y será mapeado con el puerto del contenedor
- –name postgres103 -> Se define el nombre del contenedor.
- -v /opt/postgres:/var/lib/postgresql/data -> Mapea la ruta /opt/postgres de nuestro servidor con la ruta /var/lib/postgresql/data del contenedor.
- -e POSTGRES_PASSWORD=secret -> Se especifica la contraseña del usuario password, para el caso secret.
- -d postgres:10.3 -> Se especifica la imagen que se usará en el contenedor, anteriormente descargada con docker pull.
Para validar la operatividad del contenedor haremos uso del siguiente comando
[root@localhost home]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e8606a109569 postgres:10.3 "docker-entrypoint.s…" 8 days ago Up 7 days 0.0.0.0:5432->5432/tcp postgres103
En caso no se muestre el contenedor haremos uso del siguiente comando para iniciar el contenedor.
[root@localhost home]# docker start postgres103
Acceso al contenedor en modo bash
Para acceder al contenedor en modo bash ejecutaremos el siguiente comando
[root@localhost home]# docker exec -it postgres103 bash root@e8606a109569:/#
Esto sera necesario para modificar los parámetros de configuración de nuestro motor de base de datos PostgreSQL, en los archivos postgresql.conf y pg_hba.conf, ubicados en la ruta /var/lib/postgresql/data de nuestro contenedor.
Si se desea se puede hacer esta modificación directamente en la ruta /opt/postgres de nuestro servidor.
Acceso al contenedor PostgreSQL
Para gestionar los objetos de base de datos ejecutaremos el siguiente comando
[root@localhost home]# docker exec -it postgres103 psql -U postgres psql (10.3) Type "help" for help. postgres=#