Estou trabalhando com Docker e quero montar uma pasta dinâmica que muda muito (para não ter que fazer uma imagem Docker para cada execução, o que seria muito caro), mas quero que essa pasta seja somente leitura . Mudar o proprietário da pasta para outra pessoa funciona. No entanto, chown
requer root
acesso, que eu preferiria não expor a um aplicativo.
Quando eu uso o -v
sinalizador para montar, ele fornece qualquer nome de usuário que eu forneça, eu criei um usuário não root dentro da imagem do docker, no entanto, todos os arquivos no volume com o proprietário como o usuário que executou o docker, mudam para o usuário I dar a partir da linha de comando, então não posso criar arquivos e pastas somente leitura. Como posso evitar isso?
Eu também adicionei mustafa ALL=(docker) NOPASSWD: /usr/bin/docker
, para que pudesse mudar para outro usuário via terminal, mas ainda assim, os arquivos têm permissões para o meu usuário.
Respostas:
Você pode especificar que um volume deve ser somente leitura anexando
:ro
à-v
chave:Observe que a pasta é então somente leitura no contêiner e leitura e gravação no host.
Edição 2018
De acordo com a documentação Use volumes , agora existe outra maneira de montar volumes usando o
--mount
switch. Aqui está como utilizar isso com somente leitura:docker-compose
Aqui está um exemplo de como especificar contêineres somente leitura em
docker-compose
:fonte
docker cp
comando separado em um contêiner de desligamento.redis:alpine:ro
docker-compose
Esta é uma maneira adequada de especificar o volume somente leitura em
docker-compose
:https://docs.docker.com/compose/compose-file/#long-syntax-3
fonte
version: "3.2"
- Obrigado :)- './my-file.txt:/container-readonly-file.txt:ro'
sobvolumes
- anote o:ro
no final.