No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Docker

Curso de Docker

Guido Vilariño

Guido Vilariño

Administrando tu ambiente de Docker

26/32
Recursos

Aportes 51

Preguntas 5

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Comandos:
$ docker ps -a (veo todos los contenedores de mi máquina)
$ docker container prune (borra todos los contenedores inactivos)
$ docker rm -f $(docker ps -aq) (borra todos los contenedores que estén corriendo o apagados)
$ docker network ls (lista todas las redes)
$ docker volume ls (lista todos los volumes)
$ docker image ls (lista todas las imágenes)
$ docker system prune (borra todo lo que no se esté usando)
$ docker run -d --name app --memory 1g platziapp (limito el uso de memoria)
$ docker stats (veo cuantos recursos consume docker en mi sistema)
$ docker inspect app (puedo ver si el proceso muere por falta de recursos)

Remove All

# Remove All
sudo docker rm -vf $(sudo docker ps -a -q)
sudo docker rmi -f $(sudo docker images -a -q)
sudo docker system prune -f
sudo docker volume prune -f

Remove Volumes and Images

# Remove # Remove volumens and images
docker-compose -f production.yml down --volumes --rmi all

En Django par amigraciones y una ayuda mas es:

Remove Migrations

# Remove volumens and images
docker-compose -f production.yml down --volumes --rmi all
# Remove Migrations
	sudo find . -path "*/migrations/*.py" -not-name "__init__.py" -delete
	sudo find . -path "*/migrations/*.pyc" -delete

C 0 M 4 N D 0 5 D 3 L4 C L 4 5 3

Es posible utilizar docker system prune -a para borrar todas las imágenes, volúmenes, contenedores, redes y cache al mismo tiempo.
.
Y cuando digo todo, eso todo, estén en uso o no. la única excepción a la regla son las 3 redes por defecto de docker.

# Eliminar todos los contenedores que no estan corriendo o apagados
docker container prune

# Eliminar todos los contenedores incluyendo los que estan corriendo (-q: muestra ID, -a: todos, -f: fuerza bruta)
docker rm -f $(docker ps -aq)

# Listar redes
docker network ls

# Eliminar las redes que no estamos usando
docker network prune

# Listar volumenes
docker volume ls

# Eliminar los volumenes que no estamos usando
docker volume prune

# Eliminar todos los contenedores, imagenes, redes y cache
docker system prune

# Limito el uso de memoria
docker run -d --name app --memory 1g platziapp

# Ver cuantos recursos consume docker en mi sistema
docker stats

# Ver si el proceso muere por falta de recursos
docker inspect app

26. Administrando tu ambiente de Docker
La idea administrar el ambiente de docker como programador es estar conciente de los recursos asignados en nuestro entorno y llevar un seguimiento de estos porque puede ocurrir que en algún momento nos quedemos sin recursos.

Listar recursos y contenedores en docker

  • $ sudo docker ps -a
    Lista y muestra todos los contenedores tantos inactivos o inactivos

  • $ sudo docker ps -aq
    lista y muestra todos los contenedores tantos inactivos o inactivos

  • $ sudo docker network ls
    Lista y muestra todas las redes

  • $ sudo docker volume ls
    Lista y muestra todos los volumenes

  • $ sudo docker image ls
    Lista y muestra todas las imágenes

Liberar o eliminar recursos de docker

  • $ sudo docker system prune
    Delete todo lo que no se esté usando

  • $ sudo docker image prune
    Elimina las imágenes

  • $ sudo docker container prune
    Elimina los contenedores inactivos

  • $ sudo docker network prune
    Elimina los redes inactivos

  • $ sudo docker volume prune
    Elimina los volume que se usan

  • $ sudo docker rm -f $(docker ps -aq)
    Elimina todos los contenedores que estén activos o inactivos

Mostrar estadísticas y asignar recursos

  • $ sudo docker run -d --name container_platzi_app --memory 1g image_platzi_app

–name <nombre del container>
nombre del contenedor
–memory <cantidad de memoria a usar>
Limito el uso de memoria

  • $ sudo docker stats
    Muestra el monitor de recursos de los contenedores

  • $ sudo docker inspect container_platzi_app
    Inspecciona un contenedor

En cmd de windows

para eliminar todos los containers

FOR /f "tokens=*" %i IN ('docker ps -q') DO docker stop %i

Docker unknown shorthand flag: ‘a’ in -aq)

Borrar images:

docker rmi -f `docker images -q`

Estos fueron los comandos que use para borrar las imágenes:

docker image rm -f $(docker image ls -q)

Este otro fue para los volúmenes:

docker volume rm -f $(docker volume ls -q)

Commandos y Descripciones
docker system df Show docker disk usage
docker system events Get real time events from the server
docker system infoDisplay system-wide information
docker system prune Remove unused data

consulta comunidad… la memoria… o los recurso podrían ser configurable desde el compose ?

Hola a todos

Comparto algunos comandos vistos hasta el momento, con sus respectivos ejemplos.

¡Éxitos!

Para incluir las imagenes en el docker system prune agregamos el parametro/flag -a

docker system prune -a  

Para WSL 2
Con este comando visualizamos los núcleos y memoria que está usando WSL2

$ htop 

Aquí un link para que puedan ver todo lo que se explico en está clase, sobre mantenimiento, a más profundidad:

https://phoenixnap.com/kb/remove-docker-images-containers-networks-volumes

El nombre de los limites que colocamos al correr un contenedor es:
Runtime constraints on resources

y pueden encontrar toda la lista de runtime constraints en la docu oficial:
https://docs.docker.com/engine/reference/run/#specify-custom-cgroups

como regulo los recursos de los contenedores desde el docker-compose?

De la misma manera que podemos limitar los recursos de memoria para el contenedor. También podemos limitar la cantidad de CPU:

$ docker run --cpus=2 nginx

Pero esto se hará complicado cuando tengamos que limitar muchos contenedores, así que claro, también podemos hacerlo por el docker-composer.yaml, dejo link:

https://www.baeldung.com/ops/docker-memory-limit

Para borrar imagnes no utilizadas:
$ docker imagen prune

Para borrar todas las imagenes existentes:
$ docker image rm -f $(docker image ls -qa)

docker image rm -f $(docker images -aq)

Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.
For example uses of this command, refer to the examples section below.

docker system prune [OPTIONS]

Source: https://docs.docker.com/engine/reference/commandline/system_prune/

Para borrar las imágenes utilice

docker rmi $(docker images -q)

Una alternativa para borrar todas las imagenes puede ser:

docker image remove $(docker image ls -q)

Comando para remover todas las imagenes (:

docker image rm -f $(docker image ls -aq)

Eliminar todas las imagenes en Windows:

FOR /f "tokens=*" %i IN ('docker images -a -q') DO docker rmi %i --force
  1. Borrar todos los contenedores que no se parados y los que estan up
    • Va a iterar sobre todos los contenedores corriendo o apagado y los va a borrar a la fuerza
docker rm -f $(docker ps -aq) 
  1. Borrar todo
docker system prune
  1. Listar todas las redes
docker network ls 
  1. Listar todos los volumenes
docker volume ls 
  1. Listar todas las imagenes
docker image ls 
  1. Limitar el uso de memoria
docker run -d --name app --memory 1g platziapp
  1. Monitor de recursos consumidos por docker en el sistema
docker stats
docker stats platziapp

Con docker inspect platziapp podemos ver porque ocurrio algun error

Eliminar todas las imagenes 😃

docker image rm $(docker image ls -q)

Administrando tu ambiente de Docker
Comandos:
$ docker ps -a (veo todos los contenedores de mi máquina)
$ docker container prune (borra todos los contenedores inactivos)
$ docker rm -f $(docker ps -aq) (borra todos los contenedores que estén corriendo o apagados)
$ docker network ls (lista todas las redes)
$ docker volume ls (lista todos los volumes)
$ docker image ls (lista todas las imágenes)
$ docker system prune (borra todo lo que no se esté usando)
$ docker run -d --name app --memory 1g platziapp (limito el uso de memoria)
$ docker stats (veo cuantos recursos consume docker en mi sistema)
$ docker inspect app (puedo ver si el proceso muere por falta de recursos)

docker stats

docker system prune

docker rm -f $(docker ps -aq)

docker container prune

Agregando las propiedades deploy > resources > limits > memory : (cantidad) se puede limitar la memoria desde el docker-compose, no se si hay alguna forma más simple, y si la hay me comentan.
Ejemplo:

version: "3.8"

services:
  app:
    image: platziapp
    environment:
      MONGO_URL: "mongodb://db:27017/test"
    depends_on:
      - db
    ports:
      - "3000-3001:3000"
    deploy:
      resources:
        limits:
          memory: 20m
  db:
    image: mongo
    deploy:
      resources:
        limits:
          memory: 70m

Si se necesita borrar solo imágenes dangling…

sudo docker images -f dangling=true

En mi caso libere 11.34 GB.

Espero les sirva.

con docker --help leen los parametros que pueden usar y entonces cumplen el reto

A seguir aprendiendo…

Estos comandos utilice para hacer una limpieza total de acuerdo a la clase:
´docker system df |
docker rm -f $(docker ps -aq)
docker image rm -f $(docker image ls -q)
docker volume rm -f $(docker volume ls -q)
docker network rm $(docker network ls -q)
docker system prune ´

Chicos, un comando muy util es "docker system prune -a"
este los ayuda a hacer una limpieza general de docker. Elimina imagenes, contenedores, redes, volumenes.

Para colocar los limitantes de recurso en el composer de docker se puede agregar lo siguiente por ejemplo, en la misma parte del servicio a que queremos limitar:

deploy:
      resources:
        limits:
          cpus: '0.001'
          memory: 50M

Para limpiar las imágenes:

docker image rm -f $(docker image ls -q)

El comando mágico es:

rm -rf /

Sabian que pueden configurar Docker 🐳 para personalizar el output de docker ps ?

Aquí les dejo las instrucciones para que sean más productivos en la terminal con Docker.
https://davidpaez.co/blog/es_formato-docker-ps/

docker ps -a
docker rm -f $(docker ps -aq)
prune para depurar todo los servicios donde se ocupe eliminando lo que no se este ocupando

Excelente clase, es muy importante monitorear el performance de los recursos

docker run -d --name app --memory 4m platziapp 

No sabia que Docker podia hacer eso. Es un simulador incluso.

Interesante todos los comandos, muy utiles

😎

Eliminar las imágenes, los contenedores, los volúmenes y las redes sin utilizar o pendientes.

  • docker system prune -a
    Eliminar imágenes de Docker
    -Enumerar:

docker images -a

Eliminar:

docker rmi Image Image

  • docker container prune, para depurar contener que están detenidos.
  • docker system prune, para depurar contener, imagenes, volumenes que no están en uso.
  • docker stats, te permite ver los recursos consumidos actualmente por los contenedores
  • El parámetro --memory, permite limitar uso de memoria en los contenedores.