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.ymlque estén parados.docker-compose rm: Borra los contenedores parados del escenario. Con las opción-felimina 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-fpodremos ir viendo los logs en "vivo".docker-compose logs servicio1: Muestra los logs del servicio llamadoservicio1que estaba descrito en eldocker-compose.yml.docker-compose exec servicio1 /bin/bash: Ejecuta una orden, en este caso/bin/bashen un contenedor llamadoservicio1que estaba descrito en eldocker-compose.ymldocker-compose build: Ejecuta, si está indicado, el proceso de construcción de una imagen que va a ser usado en eldocker-compose.ymla partir de los ficherosDockerfileque 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