Używam sobie Docker Desktop na Windowsie. Pobrałem do niego obraz, odpaliłem, ustawiłem zmienne środowiskowe w okienku (port, lokalizacja folderu danych itd) i wszystko śmiga. Teraz chciałbym zaktualizować obraz bo wyszła nowa wersja, ale jedyne co mi przychodzi to usunięcie kontenera, pobranie obrazu, odpalenie obrazu z tymi samymi parametrami co poprzedni kontener.
Da się to jakoś zrobić szybciej? Nie chce mi się przy każdym updejcie obrazu kasować kontenera i od nowa ustawiać wszystkie parametry przy starcie nowego obrazu.
Wszystkie tutoriale mówią o jakimś docker compose, docker yml.
Nie da się tego zrobić prościej na zasadzie "pobierz nowy obraz i redeplojuj kontener z zachowaniem konfiguracji"?
#docker #programowanie #homelab #konteneryzacja #informatyka
Shdhhxhxwhhzhdb

Tak, tak to działa. Nie musisz myśleć co jest w nowym obrazie i modyfikować istniejącego kontenera, bo właśnie po to dostajesz nowy, gotowy obraz.


Oraz tak, konfiguracja powinna być wydzielona, czy to przez zmienne środowiskowe czy przez wolumeny. Jeśli chodzi o docker compose to jest to wrapper na konfigurację, która robisz z palca plus kilka innych funkcji.

dext3

@NrmvY no ale tak jest właśnie najprościej...

Tworzysz jeden plik, w którym trzymasz załą konfigurację, łącznie ze zmiennymi środowiskowymi. Jak chcesz podbić wersję, to podbijasz, usuwasz istniejący kontener i odpalasz na nowo z pliku.

I jedna uwaga - raczej powinno się unikać korzystania z tagu "latest", lepiej wskazywać konkretną wersję.

NrmvY

@dext3


"Jak chcesz podbić wersję, to podbijasz, usuwasz istniejący kontener i odpalasz na nowo z pliku."


o to mi chodzi jak to zrobić na Docke Desktop? Bo normalnie jak odpalam obraz to mam takie okno i musze wszystko z palca wprowadzać ręcznie.

e4e1bde5-4742-44d2-bb2f-040831117441
ParisPlatynov

@dext3 z latest tak samo w mavenie też każdy zaleca konkretne wersje i ich kontrolowania. Bo nowa wersja i się wszystko wypierdziela. A tak potrzeba wybierasz, testujesz, pozostajesz lub wracasz do poprzedniej.

dext3

@NrmvY kurde nie wiem, nigdy nie korzystałem z takich narzędzi (kiedyś miałem Portainera, ale mnie nie zachwycił).

Ja korzystam z Dockera jedynie przez CLI, w zasadzie to tak pracują chyba wszyscy.

W zależności od tego co chcesz zrobić, możesz stworzyć własny obraz za pomocą Dockerfile (np. z własną aplikacją, albo jakimś usprawnieniem/modyfikacją czegoś gotowego).

Ja korzystam z docker-compose w celu konfiguracji wszystkiego i uruchomienia "na raz" kilku serwisów.

To się tylko wydaje toporne, ale mając plik i wersjonując go sobie w repozytorium git mam historię zmian, a uruchomienie to krótka komenda [ docker-compose up -d . ]

Zamiast klikać i wypełniać jakieś pola, mam wszystko w pliku.

Docker Desktop pozwala korzystać z poleceń w terminalu, i tę drogę zarządzania proponuję opanować.

weirdo2k23

@NrmvY z poziomu terminala zrobisz to w przeciągu minuty. stopujesz kontener, usuwasz poprzedni obraz, robisz pulla, przechodzisz do katalogu gdzie masz yamla i lecisz z docker compose

NrmvY

@weirdo2k23 @dext3 już znalazłem rozwiązanie. Docker Desktop ma opcję "kopiuj komendę docker run" na liście z kontenerami. Komenda ta ma w sobie całą konfigurację kontenera.

Czyli: usuwam kontener, aktualizuje obraz, klikam w run.bat z komendą i fajrant.

Zaloguj się aby komentować