Docker w systemie ZimaOS obsługuje montowania bind tylko do odczytu, ale omawiany w tym wątku społeczności interfejs WebUI niestandardowych aplikacji ZimaOS nie zachowuje niezawodnie opcji takich jak :ro lub :readonly podczas edytowania mapowania woluminu. To ograniczenie WebUI, a nie ograniczenie samego Dockera.
Obejście stosowane przez społeczność polega na ręcznym wyeksportowaniu lub zapisaniu pliku YAML Compose, a następnie utworzeniu aplikacji za pomocą Docker Compose lub interfejsu CLI. W grudniu 2025 r. IceWhale przyznało, że przyszłe interfejsy WebGUI są projektowane z większą liczbą opcji edycji. W późniejszej odpowiedzi z 24 sierpnia 2026 r. nadal opisano zachowanie interfejsu dotyczące trybu tylko do odczytu jako nierozwiązane, dlatego obecni użytkownicy powinni zweryfikować rzeczywiste montowanie kontenera, zamiast zakładać, że interfejs zachował tę flagę.
Docker obsługuje montowania bind tylko do odczytu
Aktualna dokumentacja montowań bind Dockera obsługuje zarówno opcje ro, jak i readonly.
W skróconej -v składnią:
docker run -v /host/path:/container/path:ro IMAGE
Docker akceptuje również tylko do odczytu jako opcję w udokumentowanej składni montowania bind. Wraz z --mount:
docker run --mount type=bind,src=/host/path,dst=/container/path,readonly IMAGE
Montowanie tylko do odczytu uniemożliwia kontenerowi zapisywanie za pośrednictwem tego montowania, nadal pozwalając mu odczytywać pliki hosta.
Jak działał interfejs WebUI ZimaOS
Pierwotny użytkownik zgłosił, że podczas edytowania woluminu w WebUI interfejs nie rozpoznawał końcowego :ro flag. Użytkownik z community opisał to zachowanie dokładniej: interfejs przepisywał montowanie i po zapisaniu lub ponownym otwarciu aplikacji po cichu usuwał opcję tylko do odczytu.
To rozróżnienie ma znaczenie. Bazowy silnik Dockera może utworzyć prawidłowe montowanie tylko do odczytu, ale pole woluminu w interfejsie graficznym może nie odzwierciedlać wszystkich opcji montowania Dockera.
Co IceWhale powiedział o tym ograniczeniu
26 grudnia 2025 r. Zima-Jerry odpowiedział, że przyszłe interfejsy WebGUI będą oferować więcej opcji edycji, a interfejs wciąż był projektowany. W wątku pojawiła się później odpowiedź z 24 sierpnia 2026 r., w której brak informacji zwrotnej o trybie tylko do odczytu określono jako problem bezpieczeństwa i poproszono o przewidywany termin rozwiązania.
W źródłowym wątku nie ma późniejszego potwierdzenia od IceWhale, że ograniczenie interfejsu zostało naprawione. Z tego powodu nie zakładaj, że bieżące pole WebUI jest bezpieczne dla :ro dopóki nie zweryfikujesz rzeczywistego montowania kontenera.
Używaj Docker Compose do montowań tylko do odczytu
Obejście stosowane przez społeczność polegało na wyeksportowaniu YAML-a Compose aplikacji z ZimaOS, edycji montowania i ponownym utworzeniu kontenera przy użyciu standardowego Docker Compose.
Docker Compose obsługuje tryb dostępu jako trzecie pole skróconej składni wolumenu:
app:
image: your/image:latest
Używaj tego tylko wtedy, gdy aplikacja została zaprojektowana do działania z głównym systemem plików tylko do odczytu, a wymagane ścieżki z prawem zapisu są montowane oddzielnie.
volumes:
- /DATA/example:/data:ro
Aktualna dokumentacja referencyjna pliku Compose Dockera opisuje ro jako tryb dostępu tylko do odczytu dla zamontowanego wolumenu lub ścieżki bind.
Praktyczny przebieg pracy w ZimaOS
- Otwórz ustawienia aplikacji niestandardowej.
- Wyeksportuj YAML Compose, jeśli używana wersja ZimaOS udostępnia tę opcję.
- Przed edycją zapisz kopię zapasową.
- Dodaj
:rowyłącznie do ścieżek hosta, których kontener nie powinien modyfikować. - Zweryfikuj YAML.
- Użyj autoryzowanego terminala, aby uruchomić Docker Compose.
- Sprawdź wynikowe montowanie, zanim powierzysz mu poufne pliki.
Typowe polecenie Compose to:
docker compose up -d
Uruchom to z katalogu zawierającego plik Compose i pamiętaj, że ręcznie zarządzany projekt Compose może nie działać dokładnie tak samo jak aplikacja zarządzana w całości przez interfejs ZimaOS.
Sprawdź, czy montowanie faktycznie jest tylko do odczytu
Nie ufaj wyłącznie YAML-owi ani etykiecie w interfejsie WebUI. Sprawdź działający kontener:
docker inspect CONTAINER_NAME
W Montowania sekcji Docker pokazuje, czy montowanie umożliwia zapis. Prawidłowo skonfigurowane montowanie bind tylko do odczytu powinno zwrócić:
"RW": false
Własna dokumentacja Dockera używa tej metody inspekcji do weryfikowania montowań tylko do odczytu.
Uważnie przetestuj granicę dostępu
Możesz również przeprowadzić test z wnętrza kontenera tymczasowego lub niekrytycznego, próbując utworzyć plik w zamontowanej ścieżce. Prawidłowo skonfigurowane montowanie tylko do odczytu powinno odrzucić próbę zapisu.
Nie testuj, nadpisując ważnego pliku. Użyj nieszkodliwej tymczasowej nazwy pliku i usuń z hosta wszelkie artefakty testowe, jeśli zapis nieoczekiwanie się powiedzie.
:ro i :readonly to opcje Dockera, ale składnia ma znaczenie
Oryginalny tytuł wspomina o obu opcjach :ro oraz :readonly. Aktualna dokumentacja Dockera dotycząca montowania bindów akceptuje obie nazwy w odpowiednich kontekstach opcji montowania. Najczęściej używana skrócona składnia Compose to:
/host/path:/container/path:ro
W przypadku długiej lub --mount składnia, tylko do odczytu jest również udokumentowane. Dopasuj opcję do faktycznie używanej składni Dockera, zamiast wklejać przyrostek do pola ZimaOS, które oczekuje wyłącznie ścieżki w kontenerze.
Montowanie tylko do odczytu różni się od systemu plików kontenera tylko do odczytu
Docker Compose ma również opcję na poziomie usługi read_only Na przykład:
services:
app:
image: your/image:latest
Używaj tego tylko wtedy, gdy aplikacja została zaprojektowana do działania z głównym systemem plików tylko do odczytu, a wymagane ścieżki z prawem zapisu są montowane oddzielnie.
read_only: true
Unikaj ponownego zapisywania woluminu w interfejsie, który usuwa tę flagę
Odpowiedź społeczności sugerowała traktowanie WebUI ZimaOS jako zasadniczo przeznaczonego wyłącznie do zapisu ustawień woluminów po ręcznym utworzeniu montowania tylko do odczytu. Obawa polega na tym, że ponowne otwarcie i zapisanie aplikacji za pomocą interfejsu graficznego, który nie rozumie tej opcji, może przepisać montowanie bez
Przed wprowadzeniem późniejszych zmian w interfejsie wyeksportuj bieżącą konfigurację Compose i ponownie zweryfikuj montowanie. :ro.
Dlaczego ma to znaczenie dla bezpieczeństwa
Montowania tylko do odczytu często używa się, aby zapewnić aplikacji dostęp do konfiguracji, multimediów, certyfikatów, kopii zapasowych lub danych źródłowych bez przyznawania jej uprawnień do modyfikowania tych plików.
Montowanie woluminu w interfejsie, który usuwa tę flagę, należy zapisywać ponownie tylko z zachowaniem ostrożności
Jeśli interfejs użytkownika po cichu zmieni montowanie z tylko do odczytu na odczyt i zapis, kontener otrzyma większy dostęp do systemu plików hosta, niż zamierzał administrator. Dlatego weryfikacja za pomocą docker inspect jest to istotne, dopóki sam interfejs użytkownika nie będzie niezawodnie odzwierciedlać tej opcji.
Lista kontrolna montowania Docker tylko do odczytu w ZimaOS
- Potwierdź, że aplikacja rzeczywiście potrzebuje wyłącznie dostępu do odczytu.
- Nie zakładaj, że WebUI ZimaOS zachowuje
:ro. - Wyeksportuj lub zapisz plik Compose.
- Użyj
/host:/container:rodla zamierzonego montowania. - Uruchom projekt za pomocą standardowego Docker Compose.
- Zweryfikuj montowanie za pomocą
docker inspect. - Potwierdź
RWtofalse. - Zachowaj ostrożność przy ponownym otwieraniu lub zapisywaniu aplikacji w WebUI.
- Zachowaj kopię działającego pliku YAML Compose na potrzeby odzyskiwania.
FAQ dotyczące montowania Docker tylko do odczytu w ZimaOS
Czy Docker w ZimaOS obsługuje :ro?
Tak, na poziomie silnika Docker/Compose. Wątek źródłowy wskazuje, że ograniczenie dotyczy obsługi opcji montowania przez WebUI ZimaOS.
Czy potwierdzono naprawienie problemu z WebUI?
Nie w tym wątku źródłowym. Odpowiedź z 24 sierpnia 2026 roku nadal opisywała zachowanie interfejsu użytkownika dotyczące trybu tylko do odczytu jako nierozwiązane.
Jakie jest obecnie najlepsze obejście problemu?
Wyeksportuj lub utwórz plik YAML Compose, dodaj w nim montowanie tylko do odczytu i uruchom docker compose up -di zweryfikuj działający kontener za pomocą docker inspect.
Czy read_only na poziomie usługi jest tym samym co wolumin :ro?
Nie. Ustawienie read_only: true dotyczy głównego systemu plików kontenera. A :ro dyrektywa volume dotyczy tylko tego konkretnego montowania.
Dlaczego ciche usunięcie :ro stanowi problem bezpieczeństwa?
Ponieważ kontener może uzyskać dostęp z prawem zapisu do plików hosta, które administrator zamierzał udostępnić wyłącznie do odczytu.
