Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Docker

Curso de Docker

Guido Vilariño

Guido Vilariño

Subcomandos de Docker Compose

23/32
Recursos

Aportes 25

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Comandos:
$ docker network ls (listo las redes)
$ docker network inspect docker_default (veo la definición de la red)
$ docker-compose logs (veo todos los logs)
$ docker-compose logs app (solo veo el log de “app”)
$ docker-compose logs -f app (hago un follow del log de app)
$ docker-compose exec app bash (entro al shell del contenedor app)
$ docker-compose ps (veo los contenedores generados por docker compose)
$ docker-compose down (borro todo lo generado por docker compose)

Los comandos docker-compose solo funcionan si se ejecutan dentro de la carpeta que contiene la definicion docker-compose.yml, si tratas de ejecutarlo desde afuera no lo reconoce.

Comandos utiles de docker-compose

Pregunta, tengo entendido que un servicio puede tener mas de un contenedor, entonces cuando hago docker-compose exec app bash, ese “app” es el nombre del servicio y dentro de el puede haber mas un contenedor, como se hace ahi? como diferencio a que contendor dentro del servicio puede entrar?

Si quieren ejecutar un comando en un servicio multi container lo pueden hacer de la siguiente manera

docker-compose exec --index=<index> <service-name> <command>

por ejemplo, hagamos una simple app con nginx:

notes/docker-compose.yml:

version:'3.1'

services:
  app:
    image: nginx

levantemos 3 replicas con:

docker-compose up -d --scale app=3

Listemos los contenedores:

docker-compose ps

Te saldra algo asi:

  Name                  Command
--------------------------------
notes_app_1   /docker-entrypoi...
notes_app_2   /docker-entrypoi...
notes_app_3   /docker-entrypoi...

El index es el ultimo numero en el nombre (_1, _2, _3), entonces ya podemos hacer:

docker-compose exec --index=1 app bash

Y listo!!!

23. Subcomandos de Docker Compose

Sub-comando generales de docker-compuse

Mostrar los logs de los servicios corriendo

$ sudo docker-compuse logs

Mostrar los logs de un servicio en particular

$ sudo docker-compuse logs docker_container_platzi_app

Mostrar los logs de un servicio en particular y realiza un seguimiento

$ sudo docker-compuse logs -f docker_container_platzi_app

Ejecutar un bash dentro de un servicio, aqui se coloca el nombre del serivicio y los flags -it no hacen falta, exit para salir

$ sudo docker-compuse exec container_platzi_app bash

Detiene y elimina la configuración de todo los servicios, definida en nuestro archivos.yml

$ sudo docker-compuse down

Levanta y crea la configuración de los servicios, definida en nuestro archivos.yml

$ sudo docker-compuse up

Ver detalles de redes
Listar las redes creadas

$ docker network ls

Mostrar los detalles de una red

$ docker network inspect docker_default

– listar contenedores con docker y docker-compose

docker ps
docker-compose ps -a

– Inspeccionamos la red creada por docker-compose (nombre fue creado por el nombre de tu carpeta donde estan tu archivo docker-compose.yml)

docker network inspect docker_default

– Ver los logs de todos los servicios

docker-compose logs
docker-compose logs app
docker-compose logs db
docker-compose logs -f app
docker-compose logs -f app db

– Correr un comando en un contenedor, ingresamos al modo interactivo

docker-compose exec app bash

– Limpiar, es decir eliminar contenedores, redes creadas

docker-compose down

Notas
Si usamos compose, no hace falta preocuparnos por el nombre del contenedor para interactuar entre ellos, compose se encargará de ello utilizando los nombres definidos en los servicios.

Comandos

docker-compose logs # Muestra los logs de todos los contedores.
docker-compose logs <service name> # Muestra logs logs del contenedor indicado asociado al servicio <service name>.
docker-compose exec <service name> <command> # 'Permite ejecutar el proceso <command> en el contenedor asociado al <service name > indicado'.
docker-compose up -d # Inicia todo los servicios asociados  al fichero docker-compose.yaml. (background)
docker-compose down  # 'Elimina todo el contenido creado por el comando anterior'

7/12/2020, los logs de los servicios individualeslos nuestra con docker usando el <container_name> y con docker-compose usando el <service_name>.

Con docker compose tambien puedes usar variables, creas un archivo .env donde las cargas

IMAGE_LABEL=4.0.9-alpine

y luego lo utilizas dentro del archivo de compose

services:
 redis: 
   image: redis:${IMAGE_LABEL}

El archivo .env debe estar en el mismo directorio que el docker-compose.yml

  • docker-compose build, para crear las imagenes de los servicios de docker
  • docker-compose up -d, para iniciar los servicios declarados en el archivo de docker-compose.
  • docker-compose ps, visualizar los servicios que se están ejecutando.

docker-compose genera los nombres, basados en el directorio de ejecución y el servicio a crear.

  • docker-compose logs servicio, para ver los logs del servicios
  • docker-compose exec servicio cmd, para interactuar o ejecutar algo en los servicios de docker-compose.
  • docker-compose down, para detener y eliminar los servicios creados.

genial, no conocia el poder de compose…

Recureden que para ejecutar los comandos de la clase deben estar en el directorio donde se encuentra su archivo docker-compose.yml

**docker-compose down **en las manos equivocadas , seria fatal… como hacer un TRUNCATE TABLE

1. Ver todos los logs de nuestros servicios
- -f en tiempo real

docker-compose logs
docker-compose logs "nombre del servicio que quiero ver"
docker-compose logs -f "nombre del servicio que quiero ver"
docker-compose logs -f servicio1 servicio2 ...

2. Correr un comando en un contenedor
- No hace falta el it en compose

docker-compose exec app bash

3. Limpiar el estado de los compose

docker-compose down

Comandos útiles para docker-compose

  • build Build or rebuild services
  • bundle Generate a Docker bundle from the Compose file
  • config Validate and view the Compose file
  • create Create services
  • down Stop and remove containers, networks, images, and volumes
  • events Receive real time events from containers
  • exec Execute a command in a running container
  • help Get help on a command
  • images List images
  • kill Kill containers
  • logs View output from containers
  • pause Pause services
  • port Print the public port for a port binding
  • ps List containers
  • pull Pull service images
  • push Push service images
  • restart Restart services
  • rm Remove stopped containers
  • run Run a one-off command
  • scale Set number of containers for a service
  • start Start services
  • stop Stop services
  • top Display the running processes
  • unpause Unpause services
  • up Create and start containers
  • version Show the Docker-Compose version information

Subcomandos de Docker Compos
Comandos:

$ docker network ls (listo las redes)
$ docker network inspect docker_default (veo la definición de la red)
$ docker-compose logs (veo todos los logs)
$ docker-compose logs app (solo veo el log de “app”)
$ docker-compose logs -f app (hago un follow del log de app)
$ docker-compose exec app bash (entro al shell del contenedor app)
$ docker-compose ps (veo los contenedores generados por docker compose)
$ docker-compose down (borro todo lo generado por docker compose)

docker-compose trabaja con servicios y no directamente con contenedores

Entendido y repasandoooo

MANEJO DE DOCKER COMPOSE

#logs
docker-compose logs
docker-compose logs <service-name>
docker-compose logs -f <service-name>

#ingresar a contenedor
docker-compose exec <service-name> <bash>

#listar services generados por compose
docker-compose ps

#administrar servicios composes
docker-compose up #crear
docker-compose down #eliminar

docker-compose exec app bash

Ya no hay necesidad de usar el -it con docker-compose

Docker compose funciona con servicios no con los contenedores

`docker-compose kill´sirve igual para dar de baja el servicio

😎

Muy bien