Próbuję utworzyć nowy obraz Docker, który nie używa już woluminów z działającego kontenera, który używa obrazów. Woluminy zostały utworzone przy użyciu pliku dokowanego, a nie Dockerfile. Problem polega na tym, że po uruchomieniu nowego kontenera za pomocą nowego pliku docker-compose.yml nadal mapowane są woluminy. Nadal muszę zachować te woluminy i oryginalne pojemniki/obrazy, które z nich korzystają. Ponadto, jeśli to możliwe, chciałbym nadal używać tego samego obrazu dokowanego, wystarczy dodać nową wersję lub: najnowszą. Oto kroki użyłem:Docker compose reusing volume
Nowa wersja istniejącego obrazu:
docker commit <image id> existingImage:new-version
Utwórz nowy obraz z bieżącym kontenerze trwania:
docker commit <Image ID> newimage
Utwórz nowe Döcker-compose.yml bez objętości zdefiniowane i uruchamiane dokowanie-tworzenie z inną nazwą projektu
docker-compose -p <new project name>
Bieganie bez Döcker-komponować, wystarczy użyć Döcker Run:
docker run -d -p 8093:80 <img>:<version>
każdym razem uruchomić dowolną kombinację tych tomów nadal są odwzorowane z oryginalnego obrazu. Moje pytanie brzmi: jak utworzyć kontener z obrazu, który niegdyś mapował wolumeny, ale nie chcę już używać woluminów?
Edit: Dodatkowe rzeczy próbowałem:
- Zatrzymaj kontenerów, wyjąć pojemnik, restart dokowane uruchomić doker komponować ponownie. Brak szczęścia.
Edit 2: Zdecydowaliśmy się zacząć od nowa na obrazie. Korzystając z obrazu podstawowego, uruchomiono kontener ze zaktualizowanym plikiem dokowanym, który zawiera teraz niepowiązany obraz. Uruchom doker-compose -f up -d -> STILL ma te same woluminy zmapowane, mimo że obraz nie ma (i nigdy nie ma) woluminów zmapowanych, a bieżący plik docker-compose.yml nie mapuje plików. Wygląda na to, że cache-komponent zapisuje w pamięci podręcznej, które woluminy są mapowane dla projektów.
Po wyszukaniu opcji buforowania w Docker-komponować, natknąłem się na ten artykuł: How to get docker-compose to always re-create containers from fresh images? co wydaje się rozwiązać problem obrazów buforowania, ale nie pojemniki buforowanie tomy
Nie powinieneś używać 'commitowania dockera' do budowania obrazów. Użyj 'Dockerfile' i' docker build'. – BMitch
Dlaczego nie? To naprawdę nie odpowiada na moje pytanie i może być częścią pełnej innej rozmowy. –
Ponieważ nie można go utrzymywać ani łatwo odtwarzać. Jeśli Twój obraz zostanie kiedykolwiek usunięty lub popełniłeś błąd, nie możesz wrócić. Jest to kodowy zapach próbujący utrzymać pojemniki w taki sposób, w jaki instalowałbyś serwer. To nie jest odpowiedź na twoje pytanie, dlatego jest to komentarz tutaj. – BMitch