Mi ventana acoplable produce algunos archivos temporales.
¿Hay una estrategia alentadora con respecto a eso?
Si los pongo en /tmp , no estoy seguro de que se eliminen.
¿O debería exponer el volumen /tmp de la máquina host?
Gracias
No conozco ninguna forma recomendada de administrar archivos temporales con Docker, ya que dependerá principalmente de cómo necesite manejar estos archivos temporales con su aplicación (¿deberían eliminarse al reiniciar? ¿Periódicamente?...)
Tienes varias posibilidades en función de tus necesidades:
tmpfs Docker Puede montar un volumen tmpfs que conservará los datos mientras el contenedor se esté ejecutando (es decir, los datos del volumen se eliminarán cuando el contenedor se detenga), por ejemplo:
docker run --mount type=tmpfs,destination=/myapp/tmpdir someimageEsto puede ser útil si (puede) reiniciar sus contenedores regularmente y los datos temporales pueden volver a crearse al reiniciar el contenedor. Sin embargo, si necesita poder limpiar los datos temporales mientras se ejecuta el contenedor, esta no es una buena solución, ya que deberá detener el contenedor para limpiar sus datos temporales.
Editar: según el comentario de @alexander-azarov, el tamaño del volumen tmpfs es ilimitado de forma predeterminada con el riesgo de que el contenedor consuma toda la memoria de la máquina. Se recomienda usar el indicador tmpfs-size para mitigar ese riesgo, como docker run --mount type=tmpfs,destination=/app,tmpfs-size=4096
La capa de escritura del contenedor es donde se escribirán todos los datos en el contenedor si no se monta ningún volumen. Persistirá en el reinicio del contenedor, pero se eliminará si se elimina el contenedor.
De esta manera, los datos temporales se eliminarán solo cuando se elimine el contenedor. Puede ser una buena solución para contenedores de vida corta, pero no para contenedores de vida larga.
/tmp en el contenedor con un montaje de enlacePor ejemplo:
docker run -v /tmp/myapp-tmp-dir:/myapp/tmpdir someimage Esto hará que todos los datos se escriban en el directorio /tmp/myapp-tmp-dir de la máquina host, y el resultado dependerá de cómo la máquina host administre /tmp (en la mayoría de los casos, los datos se borran al reiniciar la máquina)
Puede crear un volumen que contendrá sus datos, por ejemplo:
docker run --mount source=myappvol,target=/myapp/tmpdir someimageY administre los datos en el volumen: móntelo en otro contenedor y limpie los datos, elimine el volumen, etc.
Estas son las soluciones más comunes que se basan (casi) únicamente en las funcionalidades de Docker. Otra posibilidad sería manejar archivos temporales directamente desde su software o aplicación que se ejecuta en el contenedor, pero es más un problema relacionado con la aplicación que con Docker.