tag run remove library hub example compose docker

run - docker tag example



ventana acoplable ejecutada: por qué usar--rm(novato ventana acoplable) (4)

Estoy probando docker por primera vez y todavía no tengo un "modelo mental". Total principiante.

Todos los ejemplos que estoy viendo incluyen la marca -rm para ejecutar, como

docker run -it --rm ...

Mi pregunta: por qué "--rm". Creo que si me tomo la molestia de configurar o descargar un contenedor con las cosas buenas que contiene, por qué quitarlo, quiero que vuelva a usarlo.

Por lo tanto, sé que tengo la idea equivocada de docker.


El --rm se usa cuando necesita que el contenedor se elimine una vez finalizada la tarea.

Esto es adecuado para pruebas pequeñas o POC y evita el dolor de cabeza para el mantenimiento de la casa.


Los contenedores son simplemente una instancia de la imagen que usas para ejecutarlos. El estado de ánimo al crear una aplicación en contenedor no es tomar un contenedor de ubuntu nuevo y limpio, por ejemplo, y descargar las aplicaciones y configuraciones que desea tener, y luego dejar que se ejecute.

Debe tratar el contenedor como una instancia de su aplicación, pero su aplicación está incrustada en una imagen. El uso adecuado sería crear una imagen personalizada, donde incrustar todos los archivos, configuraciones, variables de entorno, etc., en la imagen. Lea más sobre Dockerfile y cómo se hace here

Una vez que lo hizo, tiene una imagen que lo contiene todo, y para usar su aplicación, simplemente ejecute la imagen con la configuración de puerto adecuada u otras variables dinámicas, usando la aplicación de la docker run <your-image>

Ejecutar contenedores con la --rm es bueno para esos contenedores que usa por poco tiempo solo para lograr algo, por ejemplo, compilar su aplicación dentro de un contenedor, o simplemente probar algo que funcione, y luego sabe que es de corta duración y le dice a su demonio Docker que una vez que se haya ejecutado, borre todo lo relacionado con él y ahorre espacio en el disco.


Utilizo --rm cuando me --rm a contenedores en ejecución para realizar algunas acciones, como la copia de seguridad de la base de datos o la copia de archivos. Aquí hay un ejemplo:

docker run -v $(pwd):/mnt --link app_postgres_1:pg --rm postgres:9.5 pg_dump -U postgres -h pg -f /mnt/docker_pg.dump1 app_db

Lo anterior conectará un contenedor en ejecución llamado ''app_postgres_1'' y creará una copia de seguridad. Una vez que se completa el comando de copia de seguridad, el contenedor se elimina por completo.


de https://docs.docker.com/engine/reference/run/#clean-up---rm

Por defecto, el sistema de archivos de un contenedor persiste incluso después de que el contenedor sale. Esto facilita mucho la depuración (ya que puede inspeccionar el estado final) y retiene todos sus datos de manera predeterminada. Pero si está ejecutando procesos de primer plano a corto plazo, estos sistemas de archivos de contenedor realmente pueden acumularse. Si, por el contrario, desea que Docker limpie automáticamente el contenedor y elimine el sistema de archivos cuando el contenedor salga, puede agregar la marca --rm

En pocas palabras: es útil mantener limpio el host de los contenedores detenidos y no utilizados.