¿Por qué es necesario aprender Docker?
El aprender una tecnología multifacética como lo es Docker, nos permite extender nuestras capacidades de desarrollo. Docker no sólo es un entorno de trabajo de virtualización de instancias, es una distro que nos permite abstraer varias capas del desarrollo de software, describiendo el concepto de DevOps.
¿Qué beneficios me da el aprender Docker?
Varias, pero la más importante es la abstracción de entornos de trabajo (develop, testing / staging, production, etc.) y extenderlos a conceptos vivos en la nube.
Comandos en Docker:
docker-compose up -d postgres
→ Levantar el contenedor docker.
docker-compose ps
→ Ver contenedores corriendo.
docker-compose down
→ Dejar de correr el contenedor docker.
Archivo docker-compose.yml
:
version
): La versión del archivo yml en el cual será tratado el proceso.services
): Los servicios que queremos que corra, donde nos podemos conectar.*image*
): La imagen que queremos correr, en este caso, postgres versión 13.*environment*
) son la configuración inicial que el contenedor va a recibir. En este caso, los datos de la BD.ports
): En qué puerto va a correr, en este caso, 5432.volume
): Los contenedores no tienen estado (no tienen persistencia), por lo que todo lo que se haga se puede borrar al dejar de correr el contenedor. Para que esto no suceda, se necesita crear un volumen, eso sería decirle “contenedor, cada vez que levantes conéctate a este volumen para que ahí vayas guardando toda la información que quiero persistir”.
Se específica que la persistencia de datos se guardará en la carpeta postgres_data
e internamente en el contenedor que se está corriendo, los datos son guardados en /var/lib/postgresql/data
.version: '3.3'
services:
postgres:
image: postgres:13
environment:
- POSTGRES_DB=my_store
- POSTGRES_USER=john
- POSTGRES_PASSWORD=admin123
ports:
- 5432:5432
volumes:
- ./postgres_data:/var/lib/postgresql/data