Solución de la comunidad

Usa volúmenes de Docker de solo lectura en las aplicaciones personalizadas de ZimaOS

A ZimaOS user found that the WebUI did not preserve Docker :ro or readonly mount options. Community replies clarified that standard Docker on ZimaOS supports the flags through Compose/CLI, while IceWhale said richer WebGUI mount options were being designed.

Docker en ZimaOS admite montajes bind de solo lectura, pero la WebUI de aplicaciones personalizadas de ZimaOS mencionada en este hilo de la comunidad no conserva de forma fiable opciones como :ro o :readonly al editar una asignación de volumen. Es una limitación de la WebUI, no de Docker.

La solución alternativa de la comunidad consiste en exportar o escribir manualmente el YAML de Compose y crear la aplicación con Docker Compose o la CLI. IceWhale reconoció en diciembre de 2025 que se estaban diseñando futuras interfaces web con más opciones de edición. Una respuesta posterior, del 24 de agosto de 2026, seguía describiendo el comportamiento de solo lectura de la interfaz como no resuelto, por lo que los usuarios actuales deberían verificar el montaje real del contenedor en lugar de asumir que la interfaz conservó el indicador.

Docker admite montajes bind de solo lectura

La documentación de Docker sobre montajes bind actual admite las opciones ro y readonly.

Con la forma abreviada -v sintaxis:

docker run -v /host/path:/container/path:ro IMAGE

Docker también acepta readonly como opción en su sintaxis documentada para montajes bind. Con --mount:

docker run --mount type=bind,src=/host/path,dst=/container/path,readonly IMAGE

Un montaje de solo lectura impide que el contenedor escriba a través de ese montaje, aunque le permite leer los archivos del host.

Qué hacía la WebUI de ZimaOS

El usuario original informó que, al editar un volumen en la WebUI, la interfaz no reconocía el elemento final :ro flag. Una respuesta de la comunidad describió el comportamiento con más precisión: la interfaz reescribía el montaje y eliminaba silenciosamente la opción de solo lectura cuando se guardaba o se volvía a abrir la aplicación.

Esa distinción es importante. El motor de Docker subyacente puede crear el montaje correcto de solo lectura, pero el campo de volúmenes de la interfaz gráfica puede no representar todas las opciones de montaje de Docker.

Lo que dijo IceWhale sobre la limitación

El 26 de diciembre de 2025, Zima-Jerry respondió que las futuras interfaces web ofrecerían más opciones de edición y que la interfaz aún se estaba diseñando. Posteriormente, el 24 de agosto de 2026, alguien respondió en el hilo que la falta de indicación de solo lectura era un problema de seguridad y solicitó una fecha estimada.

El hilo original no contiene una confirmación posterior de IceWhale de que se haya corregido la limitación de la interfaz. Por ese motivo, no des por seguro que el campo actual de la WebUI sea seguro para :ro hasta que verifiques el montaje real del contenedor.

Usa Docker Compose para los montajes de solo lectura

La solución alternativa de la comunidad consistía en exportar desde ZimaOS el YAML de Compose de la aplicación, editar el montaje y recrear el contenedor con Docker Compose estándar.

Docker Compose admite un modo de acceso como tercer campo en la sintaxis corta de volúmenes:

services:
  app:
    image: your/image:latest
    volumes:
      - /DATA/example:/data:ro

La documentación de referencia del archivo Compose actual de Docker documenta ro como el modo de acceso de solo lectura para un volumen montado o una ruta bind.

Un flujo de trabajo práctico en ZimaOS

  1. Abra la configuración de la aplicación personalizada.
  2. Exporte el YAML de Compose si su versión actual de ZimaOS ofrece esa opción.
  3. Guarde una copia de seguridad antes de editar.
  4. Añada :ro solo a las rutas del host que el contenedor no debería modificar.
  5. Valide el YAML.
  6. Use un terminal autorizado para ejecutar Docker Compose.
  7. Verifique el montaje resultante antes de confiarle archivos confidenciales.

Un comando Compose normal es:

docker compose up -d

Ejecútelo desde el directorio que contiene el archivo Compose y tenga en cuenta que un proyecto de Compose administrado manualmente puede dejar de comportarse exactamente como una aplicación gestionada completamente desde la interfaz de ZimaOS.

Verifique que el montaje sea realmente de solo lectura

No confíe únicamente en el YAML o en la etiqueta de la interfaz web. Inspeccione el contenedor en ejecución:

docker inspect CONTAINER_NAME

En el Montajes section, Docker muestra si el montaje permite escritura. Un montaje bind correctamente configurado como de solo lectura debería mostrar:

"RW": false

La propia documentación de Docker utiliza este método de inspección para verificar los montajes de solo lectura.

Pruebe cuidadosamente el límite de acceso

También puede hacer pruebas desde dentro de un contenedor desechable o no crítico intentando crear un archivo en la ruta montada. Un montaje de solo lectura configurado correctamente debería rechazar la escritura.

No haga pruebas sobrescribiendo un archivo importante. Use un nombre de archivo temporal e inofensivo y elimine cualquier artefacto de prueba del host si la escritura se realiza correctamente de forma inesperada.

:ro y :readonly son opciones de Docker, pero la sintaxis importa

El título original menciona tanto :ro y :readonly. La documentación actual de Docker sobre montajes bind acepta ambos nombres en los contextos de opciones de montaje aplicables. La sintaxis corta de Compose más utilizada es:

/host/path:/container/path:ro

Para montajes largos o --mount sintaxis, readonly también está documentado. Haga coincidir la opción con la sintaxis de Docker que realmente está utilizando, en lugar de pegar un sufijo en un campo de ZimaOS que solo espera una ruta del contenedor.

Un montaje de solo lectura es diferente de un sistema de archivos de contenedor de solo lectura

Docker Compose también tiene un nivel de servicio read_only opción. Eso hace que el sistema de archivos raíz del contenedor sea de solo lectura. No es lo mismo que marcar un montaje de enlace individual como de solo lectura.

Por ejemplo:

services:
  app:
    image: your/image:latest
    read_only: true

Úsalo solo cuando la aplicación esté diseñada para ejecutarse con un sistema de archivos raíz de solo lectura y sus rutas escribibles necesarias estén montadas por separado.

Evita volver a guardar el volumen en una interfaz que elimina la marca

Una respuesta de la comunidad sugirió tratar la WebUI de ZimaOS como efectivamente de solo escritura para la configuración de volúmenes una vez creado manualmente un montaje de solo lectura. La preocupación es que volver a abrir y guardar la aplicación mediante una interfaz gráfica que no entiende la opción pueda reescribir el montaje sin :ro.

Antes de realizar cambios posteriores en la interfaz, exporta la configuración actual de Compose y verifica después el montaje.

Por qué esto es importante para la seguridad

Los montajes de solo lectura se utilizan a menudo para dar a una aplicación acceso a configuraciones, medios, certificados, copias de seguridad o datos de origen sin darle permiso para modificar esos archivos.

Si una interfaz cambia silenciosamente un montaje de solo lectura a lectura y escritura, el contenedor recibe más acceso al sistema de archivos del host del que el administrador pretendía. Por eso es importante verificarlo con docker inspect es importante hasta que la propia interfaz represente la opción de forma fiable.

Lista de comprobación de montajes Docker de solo lectura en ZimaOS

  1. Confirma que la aplicación realmente necesita solo acceso de lectura.
  2. No supongas que la WebUI de ZimaOS conserva :ro.
  3. Exporta o escribe un archivo de Compose.
  4. Usa /host:/container:ro para el montaje previsto.
  5. Inicia el proyecto con Docker Compose estándar.
  6. Verifica el montaje con docker inspect.
  7. Confirmar RW es false.
  8. Ten cuidado al volver a abrir o guardar la aplicación en la WebUI.
  9. Conserva una copia del archivo YAML de Compose funcional para recuperarlo.

Preguntas frecuentes sobre montajes Docker de solo lectura en ZimaOS

¿ZimaOS Docker admite :ro?

Sí, en el nivel del motor Docker/Compose. El hilo de origen identifica la limitación como el manejo de las opciones de montaje por parte de la WebUI de ZimaOS.

¿Se ha confirmado que se solucionó el problema de la WebUI?

No en este hilo de origen. Una respuesta del 24 de agosto de 2026 todavía describía como no resuelto el comportamiento de solo lectura de la interfaz.

¿Cuál es la mejor solución alternativa actual?

Exporta o crea un archivo YAML de Compose, añade allí el montaje de solo lectura y ejecuta docker compose up -dy verifica el contenedor en ejecución con docker inspect.

¿Es lo mismo read_only del servicio que un volumen :ro?

No. El nivel del servicio read_only: true afecta al sistema de archivos raíz del contenedor. Un :ro volume solo afecta a ese montaje específico.

¿Por qué perder silenciosamente :ro supone un problema de seguridad?

Porque el contenedor podría obtener acceso de escritura a archivos del host que el administrador tenía previsto exponer solo para lectura.