Trabajando con docker-compose
Clase 21 de 25 • Fundamentos de Docker 2018
Contenido del curso
Clase 21 de 25 • Fundamentos de Docker 2018
Contenido del curso
Carlos Andrés Charris S
Gabriel Alfonso
Felipe Jurado Murillo
Guido Arce
Paul Cortes
Iván Toro
Cristian Camilo Perez Cardona
Freddy Castillo
Ricardo Antonio Rodriguez Valdez
Kevin Morales
Wilson Fernando Antury Torres
Alejandro Sanchez
Jose Miguel Diaz
Gonzalo Amador Hernández
John Agudelo
Alejandro Sanchez
Gilberto Pérez
Hanson Garzon
César Augusto Sierra Mejía
Diego Forero
CARLOS ENRIQUE CALDERON AGUILAR
DAVID EDUARDO BAEZ SANCHEZ
Gustavo Saldivia
Kevin Morales
Omar Juarez
Roberto Galan
Kevin Morales
Juan David Cajamarca Acuña
William Glaffo
Gedward Romo
William Schnaider Torres Bermon
Ivan Acosta
Detener contenedores en docker-compose
docker-compose down
Para los contenedores y los borra incluyendo el network
Entrar a un contenedor montado con docker-compose
docker-compose exec <nombre del contenedor> bash
Ej: docker-compose exec app bash
Ver logs de los contenedores montados con docker-compose
docker-compose logs
Para filtrar:
docker-compose logs <keyword>
Ej: docker-compose logs app
Ver el status de docker-compose
docker-compose ps
Ejecutar contenedores en segundo plano docker-compose
docker-compose up -d
No muestra el output
-d = —detach Corre en segundo plano
Entrar a un contenedor montado con docker-compose docker-compose exec nombre-servicio bash Ej: docker-compose exec app bash
Creo que una pequeña correción, para entrar al contenedor, es el nombre del servicio y no el nombre del contedor!! Saludos
Es posible detener contenedores sin borrarlos con
docker-compose stop
Esto detiene los contenedores pero no los borra, tampoco elimina los networks
Comandos basicos docker-compose
docker-compose comparte muchos comandos con docker tradicional como lo son:
docker-compose up levanta los contenedores y arma la red según como este especificado en el archivo docker-compose.yaml
docker-compose up -d hace lo mismo que el docker run -d para enviarlo al background el detach
docker-compose exec [nombre_servicio] [comando] activa el modo interactivo en un servicio(contenedor)
docker-compose logs [nombre_servicio] muestra los logs del servicio que dese
docker-compose down este es un poderoso comando que hace que se destruyan los contenedores y se elimine la red creada por docker-compose
Docker compose docs
comandos de docker compose: >> docker-compose up -d => -d significa detach me quiero desatachar => del output Para mirar el estado de docker-compose >> docker-compose ps Ver los logs de un servicio >> docker-compose logs app Para entrar a un contendor >> docker-compose exec app bash Para eliminar todo lo de docker-compose o bajarlo: >> docker-compose down
El comando docker-compose up es necesario ejcutar donde se encuentre al archivo yml?
No es necesario puedes usasr rutas abolutas y/o directorios espefificos dentro de PWD.
Si el archivo se encuentra en la misma carpeta donde estás ejecutando el comando no necesitas hacerlo. También puedes especificarle la ruta absoluta del archivo que quieres que se ejecute en caso de que tengas varios en una carpeta.
me esta gustando docker Lokitas !!
Dentro de cada servicio podemos definir el nombre del contenedor que se crea con:
container_name: <name>```
asi es!!!! muchas GRACIAS!!!
como es que no habia estudiado esto antes!!
Igualmente
Algunos de los comandos interesantes de docker-compose esta:
docker-compose up -d --> para que muestre la salida sin los logs.
docker-compose logs nombre_componente --> Veo los
docker-compose exec nombre_component bash --> Entro a la linea de comando del contenedor y veo como esta compuesto, etc.
docker-compose down --> Borra todos los servicios, las redes, los contenedores. TODO es bueno para ser ordenados.
Para verificar eventos en tiempo real de logs puede agregar -f al comando de logs: docker-compose logs -f app
En caso de querer subir varios contenedores en ambiente productivo se usaría docker-compose o se usa principalmente en ambiente de desarrollo ? lo pregunto principalmente para que queden conectados a una red.
Depende de lo que necesites, si solo necesitas tener un contenedor para tu aplicación puedes usar docker compose sin problema pero si tu app tiene muchas visitas probablemente necesitas tener varios contenedores corriendo tu app entonces debes usar docker swarm o kubernetes para orquestar todos los contenedores.
Mmm no estoy tan de acuerdo con la respuesta de Diego, mi percepción es la siguiente:
Entendido
sudo docker-compose up -d docker-compose ps docker-compose logs app docker-compose logs -f app
alguien me dijo que no era recomendable usar docker compose para produccion, que mejor era kubernettes. Esto es cierto?
Creo que eso depende mucho de tu aplicación, si es algo sencillo creo que puede bastarte con docker compose, pero si vas a escalar y se convierte en algo más complejo K8s sin duda te será
Excelente clase. Mucho de lo que se vió no lo sabía.
Entonces docker-compose es capaz de frenar y volver a correr un contenedor? Digamos a diferencia de docker run que al frenar el contenedor y volver a correr docker run crea un nuevo contenedor
Si, es capaz de hacer eso :)
Exacto.
con el down y el up se destruye y regenera de forma facil, pero que pasa con el código tambien se borra si estaba dentro del contenedor, como podemos aislar el código de nuestras aplicaciones , para evitar perdidas
Una duda, hay forma de asignar un nombre al conjunto de contenedores que ejecuto con docker compose? el fin es que al ejecutar "docker-compose down" solo mate al grupo de contenedores que indicaría. Excelente curso
En la practica lo que he realizado es lo siguiente:
Mira este comentario, veo que hay una bandera -p que esta asociadoa lo que pregunta.
Excelente clase!