Posted by q3it on viernes, diciembre 24, 2021 in Micro-servicios
Ver las capas de un contenedor
docker history <tag contenedor>
Ej: docker history ubuntu:diego
Dive nos permite ver en detalle las capas del contenedor, con las arrow key me puedo mover entre las capas, con tab me muevo dentro de los archivos y presionando la u nos muestra solamente los archivos o carpetas que fueron modificados o adicionados.
- Para comprender la estructura de sus capas podemos verlo desde el archivo Dockerfile. En hub.docker.com podemos ver éste archivo de las imágenes públicas.
- Con el comando: docker history nombreImagen -> podemos ver información acerca de las capas de la imagen.
- Con el flag “–no-trunc” del comando history podemos ver más detalles pero no es muy cómodo para ver la información.
- Opción cómoda: https://github.com/wagoodman/dive
- Las capas de docker son inmutables, cada cambio en la imagen se trata como una capa nueva.
Para instalar dive en windows 10:
- descargar aqui
- Lo copian en el disco C: o donde tengan en SO, en mi caso C:\Program Files\Dive
- Adicionan la ruta al PATH del sistema, luego en el buscador editan las variables de entorno del sistema --> Variables de entorno --> Agregamos en Path --> C:\Program Files\Dive --> aceptar --> aceptar
- Reabrimos la terminal, comprobamos: dive -v
Docker networking: colaboración entre contenedores
Podemos conectar 2 contenedores de una manera fácil sencilla y rapida. Vamos a ver que con tan solo unos comandos tendremos la colaboración entre contenedores
Borrar una redes en docker
docker network rm <nombre de la red>
Ej: docker network rm node5
Crear una redes en docker
docker network create --attachable <nombre de la red>
—attachable es para que otros contenedores se puedan unir a esta red
Ej: docker network create --attachable node5
Ver redes disponibles docker
docker network ls
bridge red por defecto y se conectan con un keyword link esta en desuso, compatibilidad (deprecated)
host simula la red del computador que corre docker (no usar)
none hacer que tenga el network desabilitado
Ver contenedores en un red
docker network inspect <nombre de la red>
Ej: docker network inspect node5
Detallar la busqueda
docker network inspect -f '{{.Containers}}' node5
Unir un contenedor a la red creada
docker network connect <nombre de la red> <nombre del contenedor>
Ej: docker network connect node5 db
docker run -d --name app -p 3000:3000 --env MONGO_URL=mongodb://db:27017/test node5app
-env variable de entorno.
db es el nombre del contenedor sin necesidad de pasar la ip del contenedor para la conexión.
Redes por defecto en docker:
- bridge: red por defecto, o red puente, se solia usar con la instrucción link, la cual permitía enlazar contenedores a través de la red. Sin embargo esta red esta en desuso.
- host: ADVERTENCIA el uso de esta interfaz es de cuidado. Permite que el contenedor use la red por defecto de la maquina host. Es sensible a que si el contendor abre algún puerto, esto se vea replicado en la maquina host, generando así posibles vulnerabilidades.
- none: es similar al dev/null o hoyo negro de los sistemas unix. En este caso nos permite especificar que el contenedor no tiene salida o permiso para acceder o ser accedido por red.