No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

2D
1H
3M
36S
Curso de Docker

Curso de Docker

Guido Vilari帽o

Guido Vilari帽o

Administrando tu ambiente de Docker

26/32
Recursos

Aportes 58

Preguntas 7

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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.

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

鈥搉ame <nombre del container>
nombre del contenedor
鈥搈emory <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

# 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

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

Hola a todos

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

隆脡xitos!

Borrar images:

docker rmi -f `docker images -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

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: 鈥榓鈥 in -aq)

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

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)

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

consulta comunidad鈥 la memoria鈥 o los recurso podr铆an ser configurable desde el compose ?

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

docker system prune -a  

En windows es mejor usar PowerShell o una consola que soporte la sintaxis POSIX-family shell para trabajar con comandos tipo : $(...)

Administrando tu ambiente de Docker

Containers

  • Ver todos los contenedores
docker ps -a
  • Eliminar todos los contenedores apagados
docker container prune
  • Eliminar TODOS los contenedores
docker rm -f $(docker ps -aq)

Network

  • Ver todas las redes
docker network ls
  • Eliminar todos las redes apagadas
docker network prune

Volumes

  • Ver todos los volumenes
docker volume ls
  • Eliminar todos los volumenes apagadas
docker volume prune

Images

  • Ver todos las images
docker images ls
  • Eliminar todos las images apagadas
docker images prune
  • Eliminar TODAS las images
docker images rm -f $(docker images ls -aq)

System

  • Eliminar contendedores/volumenes/network/images/build apagadas
docker system prune

Limitando/Administrando los recursos

Podemos limitar los recursos a los que puede acceder los contenedores de docker

  • Limitando memoria
docker run -d --name app --memory 1g ubuntu

Note: debemos de cuidar ya que podemos hacer que el contendor no funcione correctamente por memoria limitada (min 4mb)

  • Para saber a detalle el estado del contenedor
docker inspect server

en State.OOMKilled (true = exit for limited memory)

  • Saber cuantos recursos esta consumiendo docker
docker stats

Si no limitamos la memoria de nuestros contenedores cada contenedor va a competir con los dem谩s por recursos

  • 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.

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?

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)

$ docker rmi -f $(docker images -aq) (borra todas las im谩genes)

隆Hice m谩s de 40 GB de espacio ejecutando los comandos! Solamente de los vol煤menes era casi 40.

Es experiencia pura en su m谩xima expresi贸n. Valor agregado descomunal esta clase esperemos que no se nos olvide escribir de manera correcta nuestros Dockerfile

docker rm solo permite eliminar contenedores, checando con man docker image vi que existe el argumento rm para eliminar im谩genes.

  • Siguiendo la misma aplicacion cuando borramos contenedores, el stdout de docker image ls -q solo regresa los id de las imagenes, por lo que鈥

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

  • El -f por si algunas imagenes se resisten a ser borradas sea la razon que sea jaja.
  • La ausencia de tildes se debe por la distro del teclado xd

Aqui esta el equivalente

docker image rm -f $(docker image ls)

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

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 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