Hoy vamos a ver de una forma rapida y sencilla como podemos dockerizar Express, nuestra aplicacion que creamos en el post anterior
A estas alturas habra pocos que no sepan que es Docker pero si aun sigues sin saberlo te recomiendo que leas alguno de estos articulos:
- What is Docker? (Oficial)
- Docker (Wikipedia)
- ¿Qué es Docker? ¿Para qué se utiliza? Explicado de forma sencilla
Una vez que tenemos todos claro lo que es Docker empecemos
Dockerizar Express
Lo primero es crear el fichero Dockerfile
#imagen desde la cual crearemos la nuestra FROM node:4.2.3 #copiamos los archivos a nuestro directorio /src COPY index.js /src/index.js COPY package.json /src/package.json #instalamos los modulos RUN cd /src; npm install #puerto que va a exponer nuestra imagen Docker EXPOSE 3000 #ejecutamos nuestro servidor CMD ["node", "/src/index.js"]
Si usas un Mac o Windows tendras que instalar Boot2Docker para poder ejecutar imagenes Docker en tu equipo. Una vez instalado y arrancado ya podemos continuar
Lo primero construir la imagen
docker build -t rubenjgarcia/express-hello-world .
Puedes poner cualquier nombre a tu imagen pero pon uno que luego sea facil de recordar por si tienes que reutilizarla
Si ejecutas el comando docker images
veras algo asi
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE rubenjgarcia/express-hello-world latest a406fd4d682a 16 seconds ago 644.9 MB node 4.2.3 14aadd36ad0c 3 days ago 641.8 MB
Ya podemos arrancar nuestro contenedor
docker run -p 3001:3000 -d rubenjgarcia/express-hello-world
El parametro -p
indica que puerto de nuestra maquina local (3001) se va a mapear a que puerto de nuestro docker (3000). De esta manera si accedemos a http://localhost:3001
podremos ver nuestra aplicacion ejecutandose
OJO!! Si usas Boot2Docker no podras acceder mediante esa url, tendras que usar la IP de la maquina virtual que se instala para poder usar Docker. Usa el comando boot2docker ip
para obtenerla