Estoy trabajando con Docker y quiero montar una carpeta dinámica que cambia mucho (para no tener que hacer una imagen de Docker para cada ejecución, lo que sería demasiado costoso), pero quiero que esa carpeta sea de solo lectura. . Cambiar el propietario de la carpeta a otra persona funciona. Sin embargo, chown
requiere root
acceso, que preferiría no exponer a una aplicación.
Cuando uso la -v
bandera para montar, da el nombre de usuario que le dé, creé un usuario no root dentro de la imagen de la ventana acoplable, sin embargo, todos los archivos en el volumen con el propietario como el usuario que ejecutó la ventana acoplable, cambia al usuario I dar desde la línea de comando, por lo que no puedo crear archivos y carpetas de solo lectura. ¿Cómo puedo prevenir esto?
También agregué mustafa ALL=(docker) NOPASSWD: /usr/bin/docker
, para poder cambiar a otro usuario a través de la terminal, pero aún así, los archivos tienen permisos para mi usuario.
Respuestas:
Puede especificar que un volumen debe ser de solo lectura agregando
:ro
al-v
conmutador:Tenga en cuenta que la carpeta es de solo lectura en el contenedor y de lectura y escritura en el host.
2018 Editar
Según la documentación de uso de volúmenes , ahora hay otra forma de montar volúmenes mediante el
--mount
conmutador. A continuación, se explica cómo utilizar eso con solo lectura:docker-compose
A continuación, se muestra un ejemplo de cómo especificar contenedores de solo lectura en
docker-compose
:fuente
docker cp
comando separado en un contenedor cerrado.redis:alpine:ro
docker-compose
Aquí hay una forma adecuada de especificar el volumen de solo lectura en
docker-compose
:https://docs.docker.com/compose/compose-file/#long-syntax-3
fuente
version: "3.2"
- Gracias :)- './my-file.txt:/container-readonly-file.txt:ro'
debajovolumes
- tenga:ro
en cuenta el al final.