Pracuję z Dockerem i chcę zamontować dynamiczny folder, który bardzo się zmienia (więc nie musiałbym tworzyć obrazu Dockera dla każdego wykonania, co byłoby zbyt kosztowne), ale chcę, aby ten folder był tylko do odczytu . Zmiana właściciela folderu na kogoś innego działa. Jednak chown
wymaga root
dostępu, których wolałbym nie narażać się do wniosku.
Kiedy używam -v
flagi do montowania, daje to dowolną nazwę użytkownika, którą podam, utworzyłem użytkownika innego niż root w obrazie Dockera, jednak wszystkie pliki w wolumenie z właścicielem jako użytkownikiem, który uruchomił docker, zmieniają się w użytkownika I. dać z wiersza poleceń, więc nie mogę tworzyć plików i folderów tylko do odczytu. Jak mogę temu zapobiec?
Dodałem również mustafa ALL=(docker) NOPASSWD: /usr/bin/docker
, więc mogłem zmienić użytkownika na innego przez terminal, ale nadal pliki mają uprawnienia dla mojego użytkownika.
Odpowiedzi:
Możesz określić, że wolumin ma być tylko
:ro
do odczytu, dołączając do-v
przełącznika:Zauważ, że folder jest wtedy tylko do odczytu w kontenerze i do odczytu i zapisu na hoście.
Edytuj 2018
Zgodnie z dokumentacją Użyj woluminów , istnieje teraz inny sposób montowania woluminów przy użyciu
--mount
przełącznika. Oto jak to wykorzystać w trybie tylko do odczytu:docker-compose
Oto przykład określania kontenerów tylko do odczytu w
docker-compose
:źródło
docker cp
polecenia na zamkniętym kontenerze.redis:alpine:ro
docker-compose
Oto właściwy sposób określenia woluminu tylko do odczytu w
docker-compose
:https://docs.docker.com/compose/compose-file/#long-syntax-3
źródło
version: "3.2"
- Dzięki :)- './my-file.txt:/container-readonly-file.txt:ro'
poniżejvolumes
- zanotuj:ro
na końcu.