Pomoc Container station update

goruss

System Engineer
Q Specialist
20 Październik 2020
114
7
18
23
QNAP
null
Ethernet
null
Witam,
W jaki sposób aktualizować kontenery zarządzane poprzez container station jeżeli została wydana nowa wersja danej aplikacji?
Chodzi mi tu konkretnie o NEXTCLOUD container.
Dotychczas usuwałem kontener, oraz pliki zabezpieczając ustawienia konfiguracyjne, ale to nie tędy droga gdyż np. niektóre ustawienia traciłem.
Z poziomu container station nie widzę takiej opcji, a próbując podmienić pliki, na te z nowej wersji - wyskakuje monit, że nie można uruchomić kontenera z powodu niekompatybilności wersji.
Czy mógłby ktoś podać jakiś sprawdzony i prosty sposób na aktualizację kontenerów z poziomu container station lub jakąś prostą komendą przez SSH ?
Dodam, że na moje potrzeby gdzie mam tylko jeden kontener z Nextcloud, który służy wyłącznie moim potrzebom - container station jest wystarczający i nie chcę zmieniać aplikacji do zarządzania kontenerami tylko z powodu opcji aktualizacji.
 
poskarż się QNAPowie że spierdolił podstawową sprawę ? każdy inny vendor to ma ...
odpal watchtower w ssh i niech samo się zrobi, no i nieuprzejmie przypominam że kopię trzeba mieć:

Kod:
docker run -d --network host --name watchtower-once -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:latest --cleanup --run-once
 
Dzięki,
Kopię mam w taki sposób, że baza danych jest na innym kontenerze, a magazyn danych dla nextcloud przechowuję na innym udziale sieciowym co pozwala mi nie myśleć o tym, że jak coś pójdzie nie tak to będzie problem właśnie z tego powodu, że już jedna tego typu aktualizacja narobiła mi trochę problemu usuwając dane.
Natomiast pytanie czy ta komenda aktualizuje wszystkie kontenery?
Pytam, bo zapomniałem dodać, że poza nextcloud mam jeszcze jeden kontener z bazą danych mariadb właśnie dla nextcloud i chciałbym wiedzieć co ta komenda konkretnie może spowodować.
 
Natomiast pytanie czy ta komenda aktualizuje wszystkie kontenery?
Tak, jeśli podasz ich nazwy na końcu podanego polecenia.

Kontener nie ma trzymać danych, od tego są wolumeny (przechowywane w folderze z Container Station) , albo bindy (czyli wskazanie gdzie leża/mają leżeć dane).

Arguments - Watchtower
Arguments - Watchtower

Sprawa ma się inaczej gdy masz to w docker-compose , bo robisz tam:
Kod:
docker-compose pull
docker-compose up -d --force-recreate
 
A jeśli nie podam to co zaktualizuje?
Oczywiście nie byłbym sobą jakby nie wykonał tej komendy :) - poniżej rezultat
Kod:
[~] # docker run -d --network host --name watchtower-once -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:latest --cleanup --run-once
Unable to find image 'containrrr/watchtower:latest' locally
latest: Pulling from containrrr/watchtower
7e1f4ce8770d: Pull complete
cc408d374d64: Pull complete
1cd04f97704d: Pull complete
Digest: sha256:0ca7a88fd0748aa6f32e50b67eb11148cdb989fc595264c2778c85297a2c1abe
Status: Downloaded newer image for containrrr/watchtower:latest
ebed12e1210787aa26573f2cd4e610d4378c1ef75103fb919586c4c8bbf9230f
No i pytanie co się stało?
Ponadto chcę co jakiś czas aktualizować konkretnie ten jeden kontener z nextcloud czyli mam rozumieć, że na końcu polecenia podaję nazwę tylko tego jednego polecenia - tak?
Pytam ponieważ wpisuję nazwę tego mojego kontenera po wywołaniu polecenia
Kod:
docker image ls
i mam taki rezultat
Kod:
REPOSITORY              TAG             IMAGE ID       CREATED         SIZE
webhippie/mariadb       latest          35ae62b312a8   41 hours ago    316MB
phpmyadmin              latest          35d3bbf29b74   10 days ago     385MB
nextcloud               latest          d58b1bb8927d   10 days ago     833MB
containrrr/watchtower   latest          09b618784c4b   5 weeks ago     13.9MB

wpisuję na koniec Twojego polecenia nextcloud i nie działa.
 
No i pytanie co się stało?
pobrało obraz i go włączyło

docker image ls
to jest lista obrazów , nie ma to nic wspólnego z nazwą działającego kontenera, którą masz w docker container ls
1678636346305.png


teraz wiesz czemu polecam portainera ? bo klikasz pare razy i robi ci update'a bez doktoryzacji w dockera.
 
OK, mam nazwę kontenera, który nazywa się
Chciałbym to robić ręcznie jedną komendą tylko dla tego kontenera co jakiś czas.
Nie tylko dlatego, że watchtower-once nie wystartował i jego pobranie spowodowało, że docker mariadb też nie chce się uruchomić, ale przede wszystkim dlatego, że mój serwer TS-131K, który ma takie parametry jakie ma.
Czy mógłbyś mi podpowiedzieć jakiej komendy użyć w przypadku kontenera o nazwe nextcloud-1, żeby zrobić taką aktualizację ręcznie?
 
Kod:
docker run  --name watchtower-once -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:latest  --run-once nextcloud-1

chociaż na twoim miejscu poleciłbym ci przeniesienie tego do docker-compose , update będzie łatwiejszy ;)
 
Trochę nie rozumiem, ten watchtower jest kontenerem, który aktualizuje inne kontenery?
Po wydaniu tego pierwszego polecenia mam taką sytuację jak na obrazku poniżej:
Bez tytułu.jpg

wychodzi zatem na to, że Twoja pierwsza komenda zaktualizowała wszystkie kontenery i pewnie dlatego mariadb-1 przestaje się uruchamiać.
Oczywiście żadnych pretensji nie mam :) i mam kopie, ale nasuwa się kolejne pytanie tj. po tej komendzie na liście kontenerów pojawił się watchtower-once, którego również nie można włączyć. Czy to jest normalne (nie znam zasady działania)?
 
Trochę nie rozumiem, ten watchtower jest kontenerem, który aktualizuje inne kontenery?
Tak - incepcja.
Portainer tez jest kontenerem do zarządzania kontenerami.

wychodzi zatem na to, że Twoja pierwsza komenda zaktualizowała wszystkie kontenery
Tak, zgodnie z podaną prośbą.

watchtower-once, którego również nie można włączyć
bo jest wyłączony i nie ma nic do roboty, możesz go śmiało skasować. Zrobił co swoje.

Możesz potem posprzątać , wywalając go z obrazów (tak jak resztę nieużywanych obrazów, upewniwszy się że reszta rzeczy działa).
 
Możesz potem posprzątać , wywalając go z obrazów (tak jak resztę nieużywanych obrazów, upewniwszy się że reszta rzeczy działa).
Super - o to mi chodziło. Temat aktualizacji można powoli zamknąć - bardzo dużo mi pomogłeś.
Natomiast sprzątając po watchtower-once udało mi się usunąć kontener oraz jego obraz natomiast nie mogę usunąć voluminów po tym kontenerze
Bez tytułu.jpg

Co można z tym zrobić?
Ponadto ostatnie już pytanie, jak można odwrócić aktualizację
mariadb-1 webhippie/mariadb:latest ?
Z tego co pamiętam to była to specjalna wersja aplikacji pod procesory ARM i po aktualizacji tego kontenera coś się wysypało, do tego stopnia, że nie można go uruchomić?
 
błąd ?
gdzieś jeszcze działa sobie kontener co tego używa, ubić go i skasowac z powrotem

Ponadto ostatnie już pytanie, jak można odwrócić aktualizację
zatrzymać nowy
odpalić kontener z podaną wersją z (docker image ls) , tak zrobiłeś to przy instalacji (w końcu masz notatki, co nie ?).
sam błąd nie powinien mieć miejsca , bo obrazy są świadome na czym się odpalają (ARM/Intel etc).

tutaj bardzo by pomógł docker-compose , bo zmieniłbyś tylko numer wersji i jesteś w domu.
 
Aktualizacja wszystkich kontenerów rozsypała struktury baz danych i dlatego kontener mariadb nie chciał wstać (tak nawiasem to bardzo dawno nie był aktualizowany). Całe szczęście, że miałem kopie wszystkich baz ponieważ mogłem usunąć ten kontener i na nowo go skonfigurować ręcznie przywracając każdą z baz.
Wszystko przebiegło pomyślnie i dzięki Twojej pomocy mam teraz aktualne wszystkie kontenery.
Mam także nadzieję, że następne aktualizacje Twoim sposobem będą już dużo prostsze i szybsze.
Jeszcze raz dzięki.
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. watchtower
  2. kontenery
  3. docker update
  4. container station
  5. nextcloud