Forum Smart'ny Dom

Domoticz na docker
 

Domoticz na docker  

Strona 3 / 3
  RSS
kadasz
(@kadasz)
Stażysta

@maciekk we wcześniejszym poście napisałem, że jeśli stosujesz wolumeny nie masz się czego obawiać - nie wiem w jakim scenariuszu uruchomiłeś kontener z domoticzem, czy w standardowym czy stosując persistent storage, więc zanim robi się jakieś destrukcyjne rzeczy warto upewnić się, że trzymasz konfigurację poza kontenerem (wolumeny) lub/i na wszelki wypadek wykonać backup działającego kontenera w ten sposób:

 

krl$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d7858538897a kadasz/image-domoticz "/sbin/my_init" 3 days ago Up 3 days (healthy) 0.0.0.0:8888->8080/tcp domoticz
krl$ docker commit -p d7858538897a domoticz_backup
sha256:769d6cc2ae32ee35356cfd9e02426cff5c8a12a6dd7888499e8216d7c1f09173
krl$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
domoticz_backup latest 769d6cc2ae32 10 seconds ago 768MB

Okazuje się że jest komenda docker update dzięki której można dynamicznie zmienić kilka opcji konfiguracyjnych działającego kontenera (o tym nie wiedziałem, bo nie miałem wcześniej takiej potrzeby) Z tego co czytam aktualizować może limity dotyczące IO, CPU, RAM, kernel memory oraz właśnie polityki restart dlatego Portainer zachował wszystko 😀 Sprawdziłem również czy kontener musi wcześniej mieć ustawiony przełącznik --restart aby zaaktualizować politykę restartu - nie musi, ta opcja jest w pełni dynamiczna.

Współdzielenie zasobów pomiędzy kontenerem a systemem hosta jest jednym z podstawowych i najprostszych mechanizmów na przechowywanie danych poza kontenerem. Pamiętaj tylko, że zanim zmapujesz wolumen na katalog znajdujący się na docker hoście ścieżki /mosquitto/{config,data,log} muszą istnieć oraz posiadać odpowiednie uprawnienia, by proces w kontenerze mógł zapisywać dane.

OdpowiedzCytuj
Dodane : 23/06/2019 3:02 pm
maciekk
(@maciekk)
Majster

@kadasz, jak wiesz moja wiedza jest jeszcze zbyt mała, abym kombinował coś ze scenariuszem uruchomienia. Uruchamiałem więc w standardowym scenariuszu - napisałem, że niewiele miałem do stracenia więc ... spróbowałem. Jeszcze kilka takich "wpadek" i będę domoticza instalował z zamkniętymi oczami 😀 

Nie do końca wiedziałem, jak sprawdzić w którym miejscu są przechowywane dane konfiguracyjne.  Teraz mądrzejszy o doświadczenie będę wiedział, że dane trzymać w wolumenach. Nomen omen - nie do końca rozumiem jeszcze - zrobiłem backup kontenera (polecenie docker commit), i po sprawdzeniu "docker images" widzę moją kopię. Tylko nie bardzo wiem, gdzie fizycznie trzymane są te obrazy.. Może to elementarz, ale jakoś nie bardzo wiem jak to interpretować...

OdpowiedzCytuj
Dodane : 24/06/2019 8:19 pm
kadasz
(@kadasz)
Stażysta
@maciekk cóż trening czyni mistrza  😎 
 
Dodane przez: maciekk

Nie do końca wiedziałem, jak sprawdzić w którym miejscu są przechowywane dane konfiguracyjne.  Teraz mądrzejszy o doświadczenie będę wiedział, że dane trzymać w wolumenach. Nomen omen - nie do końca rozumiem jeszcze - zrobiłem backup kontenera (polecenie docker commit), i po sprawdzeniu "docker images" widzę moją kopię. Tylko nie bardzo wiem, gdzie fizycznie trzymane są te obrazy.. Może to elementarz, ale jakoś nie bardzo wiem jak to interpretować...

Fizycznie trzymane są na dysku twardym hehe 😋 Dobra, dla rozjaśnienia obraz (image) jest to taki szablon tylko do odczytu, z którego uruchamiasz kontener, jednocześnie otrzymuje swój obszar, w którym może zapisywać pliki - ten obszar jest kasowany po usunięciu kontenera. Przez to właśnie dane w kontenerze są nietrwałe i ulotne. Docker korzysta z warstwowego systemu plików, content i cache obrazów leży w /var/lib/docker/ ale nie za wiele z tym zrobisz. Jeśli chcesz już backupować działający kontener to robisz to w sposób, który wcześniej napisałem, następnie możesz pushnąć obraz do registry lub zapisać na dysku wykorzystując docker save  a gdy chcesz odtworzyć obraz korzystasz z docker load

 

mac-krl:~ krl$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
domoticz_backup latest 769d6cc2ae32 2 days ago 768MB
kadasz/image-domoticz latest b71ccbc16230 3 weeks ago 721MB
krl$ docker save -o domoticz_backup.tar domoticz_backup:latest
krl$ ls -l domoticz_backup.tar
-rw------- 1 krl staff 790931456 25 cze 14:07 domoticz_backup.tar
krl$ docker rmi -f domoticz_backup:latest
Untagged: domoticz_backup:latest
Deleted: sha256:769d6cc2ae32ee35356cfd9e02426cff5c8a12a6dd7888499e8216d7c1f09173
Deleted: sha256:0663921e11d93aefcea87ba8998ee4dd9e0e5c9297e44e4f571e20cec7055ae4
mac-krl:~ krl$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
krl$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kadasz/image-domoticz latest b71ccbc16230 3 weeks ago 721MB
krl$ docker load --input domoticz_backup.tar
4b67f07dadd8: Loading layer [==================================================>] 48.52MB/48.52MB
Loaded image: domoticz_backup:latest
krl$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
domoticz_backup latest 769d6cc2ae32 2 days ago 768MB
kadasz/image-domoticz latest b71ccbc16230 3 weeks ago 721MB
OdpowiedzCytuj
Dodane : 25/06/2019 2:17 pm
maciekk
(@maciekk)
Majster

@kadasz, dzięki za wyjaśnienie. 😀 Teraz nadrabiam zaległości z zakresu Linuxa, a dzięki Tobie od razu mam przyspieszone szkolenie z dockera 😎 Wszystko działa jak napisałeś, po wykonaniu bakcupu za pomocą docker save - mam kopię kontenera.

Teraz spróbuję to wszystko poustawiać i popracować nad backupem moich kontenerów (jak i co backupować, no i jak to zautomatyzować aby cron robił za mnie robotę 😀 )

Jak będę miał koncepcję to na pewno będę męczył dalej z pytaniami..

Jeszcze raz dzięki za wsparcie.

OdpowiedzCytuj
Dodane : 26/06/2019 10:06 pm
Strona 3 / 3
Udostępnij:



Udostępnij
  • 1
    Share
  
Pracuję

Proszę Zaloguj Się lub Zarejestruj