En este articulo veremos Como usar Docker. Docker es un proyecto que permite utilizar contenedores para virtualizar aplicaciones en distintos sistemas operativos.
Que es Docker?
Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores virtuales, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos. Docker facilita la escalabilidad de las aplicaciones.
Docker permite a los usuarios crear imágenes de contenedores que contienen todas las dependencias necesarias para ejecutar una aplicación.
Como instalar docker
Para instalar docker deberemos recurrir a su sitio oficial pudiendo descargar la versión adecuada de acuerdo al sistema operativo de nuestra computadora.
https://www.docker.com/products/docker-desktop/
Como usar Docker
Para utilizar docker deberemos utilizar una terminal.
Para correr una imagen deberemos utilizar el comando run seguido por el nombre de la imagen.
Si la imagen no existe se descargará automáticamente.
Cada imagen esta compuesta por capas. Si la capa ya existe en nuestra computadora no se descargará y utilizará la existente.
docker run postgres
Para descargar una imagen sin correrla deberemos utilizar el comando pull
docker pull postgres
Como saber que imagenes de docker tengo disponibles para descargar
Si quiero saber que imagenes tengo disponibles en mi computadora debo utilizar el comando images
docker images
Si quiero ver solo un resumen de esta información
docker images | head
Si queremos saber que contenedores están corriendo en nuestra computadora debemos usar el comando ps
docker ps
utilizando el parametro – a mostrará los ultimos contenedores que corrimos en nuestra computadora.
docker ps -a
Si queremos detener el contenedor deberemos utilizar el comando stop seguido del id del contenedor
docker stop c4547dcf102
Podemos detener varios contenedores en la misma acción.
Como crear un contenedor
Para crear un contenedor deberemos crear un Dockerfile. Este es un archivo de texto que contiene un conjunto de instrucciones o comandos para la creación de una imagen docker.
Este archivo de texto debe contener el FROM donde dice a partir de que versión de software estaremos partiendo.
En FROM podemos indicar si queremos partir de un node en que versión de linux correrá. Por ejemplo FROM node:18-alpine3.18
WORKDIR nuestro directorio de trabajo
COPY los archivos que queremos copiar. Si son todos debemos indicar . .
RUN son los comandos que utilizará el constructor por ejemplo: RUN yarn install
CMD es el comando que se ejecutará en el shell de la aplicación
Para contruir un contenedor deberemos utilizar el bomando build
docker build .
o podemos colocarle un nombre de un servicio al contenedor por ejemplo docker build -t mi-servicio .
Una vez construida la imagen la podemos correr utilizando el comando docker run mi-servicio
Para hacer accesible el contenedor a nuestra computadora deberemos exponer el puerto de comunicación docker run -p 3000:3000 mi-servicio
Ten en cuenta que los contenedores al cerrarse pierden los datos ya que no son almacenados en ningun sitio. Si queremos montar un volumen deberiamos ejecutar el comando run utilizando el parametro -v
docker run -v /Users/usuario/aplicacion/app/etc:/etc/ -p 3000:3000 mi-servicio
De ese modo los datos persisten aunque el contenedor se reinicie o este detenido. También podriamos modificar el codigo de nuestra app que se veria reflejado en el navegador al refrescar el mismo.
Deberemos utilizar un comando -v por cada carpeta del contenedor que pretendamos mantener en un disco local.