Comandos docker-compose
Una vez hemos creado el archivo docker-compose.yml
tenemos que empezar a trabajar con él, es decir a crear los contenedores que describe su contenido.
Esto lo haremos mediante el ejecutable docker-compose
. Es importante destacar que debemos invocarla desde el directorio en el que se encuentra el fichero docker-compose.yml
.
Los subcomandos más usados son:
docker-compose up
: Crear los contenedores (servicios) que están descritos en eldocker-compose.yml
.docker-compose up -d
: Crear los contenedores en modo detach (segundo plano) que están descritos en eldocker-compose.yml
. Eso significa que no muestran mensajes de log en el terminal y que se nos vuelve a mostrar un prompt.docker-compose stop
: Detiene los contenedores que previamente se han lanzado condocker-compose up
.docker-compose run
: Inicia los contenedores descritos en eldocker-compose.yml
que estén parados.docker-compose rm
: Borra los contenedores parados del escenario. Con las opción-f
elimina también los contenedores en ejecución.docker-compose pause
: Pausa los contenedores que previamente se han lanzado condocker-compose up
.docker-compose unpause
: Reanuda los contenedores que previamente se han pausado.docker-compose restart
: Reinicia los contenedores. Orden ideal para reiniciar servicios con nuevas configuraciones.docker-compose down
: Para los contenedores, los borra y también borra las redes que se han creado condocker-compose up
(en caso de haberse creado).docker-compose down -v
: Para los contenedores y borra contenedores, redes y volúmenes.docker-compose logs
: Muestra los logs de todos los servicios del escenario. Con el parámetro-f
podremos ir viendo los logs en "vivo".docker-compose logs servicio1
: Muestra los logs del servicio llamadoservicio1
que estaba descrito en eldocker-compose.yml
.docker-compose exec servicio1 /bin/bash
: Ejecuta una orden, en este caso/bin/bash
en un contenedor llamadoservicio1
que estaba descrito en eldocker-compose.yml
docker-compose build
: Ejecuta, si está indicado, el proceso de construcción de una imagen que va a ser usado en eldocker-compose.yml
a partir de los ficherosDockerfile
que se indican.docker-compose top
: Muestra los procesos que están ejecutándose en cada uno de los contenedores de los servicios.
Ejemplo de uso¶
$ docker-compose up -d
Creating network "letschat_default" with the default driver
Creating mongo ... done
Creating letschat ... done
Podemos ver los contenedores que se están ejecutando:
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------
letschat npm start Up 5222/tcp, 0.0.0.0:80->8080/tcp
mongo docker-entrypoint.sh mongod Up 27017/tcp
Finalmente podemos destruir el escenario:
$ docker-compose down
Stopping letschat ... done
Stopping mongo ... done
Removing letschat ... done
Removing mongo ... done
Removing network letschat_default