O Docker no ZimaOS suporta montagens vinculadas só de leitura, mas a WebUI de Aplicação Personalizada do ZimaOS discutida neste tópico da comunidade não preserva de forma fiável opções como :ro ou :readonly ao editar um mapeamento de volume. Trata-se de uma limitação da WebUI, não de uma limitação do próprio Docker.
A solução alternativa da comunidade consiste em exportar ou escrever manualmente o YAML do Compose e criar a aplicação com o Docker Compose ou a CLI. A IceWhale reconheceu, em dezembro de 2025, que estavam a ser concebidas futuras WebGUIs com mais opções de edição. Uma resposta posterior, a 24 de agosto de 2026, continuava a descrever o comportamento da interface relativo ao modo só de leitura como não resolvido; por isso, os utilizadores atuais devem verificar a montagem efetiva do contentor em vez de presumirem que a interface preservou a flag.
O Docker suporta montagens vinculadas só de leitura
A documentação atual do Docker sobre montagens vinculadas suporta as opções ro e readonly.
Com a forma abreviada -v sintaxe:
docker run -v /host/path:/container/path:ro IMAGE
O Docker também aceita só de leitura como opção na sintaxe documentada de montagem vinculada. --mount:
docker run --mount type=bind,src=/host/path,dst=/container/path,readonly IMAGE
Uma montagem só de leitura impede o contentor de escrever através dessa montagem, permitindo-lhe ainda ler os ficheiros do anfitrião.
O que a WebUI do ZimaOS estava a fazer
O utilizador original relatou que, quando um volume era editado na WebUI, a interface não reconhecia o :ro flag. Uma resposta da comunidade descreveu o comportamento com mais precisão: a interface reescrevia a montagem e removia silenciosamente a opção só de leitura quando a aplicação era guardada ou reaberta.
Essa distinção é importante. O motor Docker subjacente consegue criar a montagem correta em modo só de leitura, mas o campo de volumes da interface gráfica pode não representar todas as opções de montagem do Docker.
O que a IceWhale disse sobre a limitação
A 26 de dezembro de 2025, Zima-Jerry respondeu que as futuras WebGUIs teriam mais opções de edição e que a interface ainda estava a ser concebida. Mais tarde, o tópico recebeu uma resposta, a 24 de agosto de 2026, que classificava a ausência de feedback sobre o modo só de leitura como uma preocupação de segurança e pedia uma previsão.
O tópico original não contém uma confirmação posterior da IceWhale de que a limitação da interface tenha sido corrigida. Por esse motivo, não assuma que um campo atual da WebUI seja seguro para :ro até verificar a montagem efetiva do contentor.
Utilize o Docker Compose para montagens só de leitura
A solução alternativa da comunidade consistia em exportar do ZimaOS o YAML do Compose da aplicação, editar a montagem e recriar o contentor com o Docker Compose padrão.
O Docker Compose suporta um modo de acesso como terceiro campo na sintaxe curta de volumes:
services:
app:
image: your/image:latest
volumes:
- /DATA/example:/data:ro
A documentação de referência do ficheiro Compose atual do Docker documenta ro como o modo de acesso só de leitura para um volume montado ou um caminho bind.
Um fluxo de trabalho prático no ZimaOS
- Abra as definições da aplicação personalizada.
- Exporte o YAML do Compose se a sua versão atual do ZimaOS disponibilizar essa opção.
- Guarde uma cópia de segurança antes de editar.
- Adicione
:roapenas aos caminhos do anfitrião que o contentor não deve modificar. - Valide o YAML.
- Utilize um terminal autorizado para executar o Docker Compose.
- Verifique a montagem resultante antes de confiar-lhe ficheiros sensíveis.
Um comando Compose normal é:
docker compose up -d
Execute-o a partir do diretório que contém o ficheiro Compose e tenha em conta que um projeto Compose gerido manualmente pode já não funcionar exatamente como uma aplicação totalmente gerida pela interface do ZimaOS.
Verifique se a montagem é realmente só de leitura
Não confie apenas no YAML ou na etiqueta da WebUI. Inspecione o contentor em execução:
docker inspect CONTAINER_NAME
Em Mounts na secção, o Docker mostra se a montagem permite escrita. Uma montagem bind corretamente só de leitura deverá apresentar:
"RW": false
A documentação do próprio Docker utiliza este método de inspeção para verificar montagens só de leitura.
Teste cuidadosamente o limite de acesso
Também pode testar a partir do interior de um contentor descartável ou não crítico, tentando criar um ficheiro no caminho montado. Uma montagem só de leitura corretamente configurada deverá rejeitar a escrita.
Não faça o teste substituindo um ficheiro importante. Utilize um nome de ficheiro temporário inofensivo e remova do anfitrião quaisquer artefactos de teste se a escrita for inesperadamente bem-sucedida.
:ro e :readonly são opções do Docker, mas a sintaxe é importante
O título original menciona ambos :ro e :readonly. A documentação atual do Docker sobre montagens bind aceita ambos os nomes nos contextos aplicáveis de opções de montagem. A sintaxe curta mais utilizada no Compose é:
/host/path:/container/path:ro
Para montagens longas ou --mount sintaxe, só de leitura também está documentado. Associe a opção à sintaxe do Docker que está realmente a utilizar, em vez de colar um sufixo num campo do ZimaOS que espera apenas um caminho do contentor.
Uma montagem só de leitura é diferente de um sistema de ficheiros do contentor só de leitura
O Docker Compose também tem uma opção ao nível do serviço read_only opção. Isso torna o sistema de ficheiros raiz do contentor só de leitura. Não é o mesmo que marcar uma montagem bind como só de leitura.
Por exemplo:
services:
app:
image: your/image:latest
read_only: true
Utilize isso apenas quando a aplicação estiver concebida para ser executada com um sistema de ficheiros raiz só de leitura e os caminhos necessários com permissão de escrita estiverem montados separadamente.
Evite voltar a guardar o volume numa interface que elimina o sinalizador
Uma resposta da comunidade sugeriu tratar a WebUI do ZimaOS como efetivamente só de escrita para as definições de volumes depois de uma montagem só de leitura ter sido criada manualmente. A preocupação é que reabrir e guardar a aplicação através de uma interface gráfica que não compreende a opção possa reescrever a montagem sem :ro.
Antes de efetuar alterações posteriores na interface, exporte a configuração atual do Compose e verifique novamente a montagem.
Porque é importante para a segurança
As montagens só de leitura são frequentemente utilizadas para dar a uma aplicação acesso a configurações, multimédia, certificados, cópias de segurança ou dados de origem, sem lhe conceder permissão para modificar esses ficheiros.
Se uma interface alterar silenciosamente uma montagem de só leitura para leitura e escrita, o contentor recebe mais acesso ao sistema de ficheiros do anfitrião do que o administrador pretendia. É por isso que a verificação com docker inspect é importante até que a própria interface represente a opção de forma fiável.
Lista de verificação das montagens Docker só de leitura do ZimaOS
- Confirme que a aplicação precisa realmente apenas de acesso de leitura.
- Não parta do princípio de que a WebUI do ZimaOS preserva
:ro. - Exporte ou escreva um ficheiro Compose.
- Utilize
/host:/container:ropara a montagem pretendida. - Inicie o projeto com o Docker Compose padrão.
- Verifique a montagem com
docker inspect. - Confirme
RWéfalse. - Tenha cuidado ao reabrir ou voltar a guardar a aplicação na WebUI.
- Guarde uma cópia do YAML do Compose funcional para recuperação.
Perguntas frequentes sobre montagens Docker só de leitura no ZimaOS
O Docker do ZimaOS suporta :ro?
Sim, ao nível do motor Docker/Compose. O tópico de origem identifica a limitação como estando na forma como a WebUI do ZimaOS trata as opções de montagem.
O problema da WebUI foi confirmado como resolvido?
Não neste tópico de origem. Uma resposta de 24 de agosto de 2026 ainda descrevia o comportamento só de leitura da interface como não resolvido.
Qual é a melhor solução temporária atualmente?
Exporte ou crie um ficheiro YAML do Compose, adicione aí o ponto de montagem só de leitura e execute docker compose up -de verifique o contentor em execução com docker inspect.
read_only ao nível do serviço é o mesmo que um volume :ro?
Não. O read_only: true afeta o sistema de ficheiros raiz do contentor. Um :ro volume afeta apenas esse ponto de montagem específico.
Porque é que perder silenciosamente :ro constitui um problema de segurança?
Porque o contentor pode obter acesso de escrita aos ficheiros do anfitrião que o administrador pretendia disponibilizar apenas para leitura.
