Wpis z mikrobloga

Pamiętajcie, że będę pisać to niżej z perspektywy linuksowego nooba: Dobra zrozumiałem istotę konteneryzacji, ba chyba dwukrotnie konteneryzacja by mnie uratowała (gdybam: gdy instalowałem jakaś starą bibliotekę python z dzikiego repozytorium bo nie była już ta wersja nigdzie do pozyskania <według mojej skromnej wiedzy>, bo zależało mi na jakimś, starym niewspieranym już od dawna projekcie co ubiło wszystkie inne aplikacje korzystające z nowszej biblioteki, drugi scenariusz: konflikt pomiędzy nginx a apache - może by wystarczyła edycja plików konfiguracyjnych i zmienia portów ale natychmiastowo podałem się i uśmierciłem już wtedy system zaczynając od nowa). Nie jestem samodzielny jeszcze w tym wszystkim, wiec zwykle kieruje się poradnikami, instalując wszystko na przypale (bez zastanowienia czy czasem nie mam już tego zainstalowanego lub alternatywy np. jak w przypadku nginx a apache).

Zakładając, że w nowej od zera podjętej próbie, która przede mną (kolejna czysta instalacja systemu) jak postawie na konteneryzacje (Podman) – to jakie wyzwania mnie czekają? Chyba najważniejsze (tak mi się aktualnie wydaje):

1. Skąd będę wiedział, że aplikacja w ramach kontenera ma wszystko to, co potrzebuje do działania? Gdzie szukać informacji czego aplikacja potrzebuje? Ciężko mi zrozumieć gdzie leży granica kontenera. Czy zainstalowany sterownik relatek r8125 będzie współdzielony czy w każdym kontenerze będzie musiał być powielony itd. itp. Inaczej: obecnie instaluje i uruchamia wszystko w systemie. Czy aplikacje w kontenerze stają się nad wyraz marudne i naglę wymagające tego tamtego, gdy wcześniej miały to pod ręką i jest to droga przez mękę, gdy nie korzysta się z gotowych obrazów?
2. Czy konteneryzacja to „bezproblemowe” opakowanie czy w ramach niego naglę się, pojawia miliard problemów (niedziałające wtyczki w ramach działającej aplikacji itd. Itp.) Czy konteneryzacja to robienie sobie pod "górę" dla zwykłego śmiertelnika, który chce mieć w domu własny serwer NAS/seedbox/media i aplikacji "self-hostel"?
3. Co z danymi, które chcemy, by były trwałe, lub nawet współdzielone między kontenerami? Myślę tu o pobranych plikach lub plikiach konfiguracyjnych. Nie wyobrażam sobie utratę danych wraz z awarią/uśmierceniem kontenera (oprócz tych buforowanych) lub nie wyobrażam sobie, by co wyłączenie „kontenera” konfigurować aplikacje na nowo (o tak bym na nowo formatował, wgrywał system, czego chce uniknąć właśnie dzięki konteneryzacji)

Będę wdzięczny za odpowiedzi .

#linux #debian #docker #programowanie
  • 4
Czy zainstalowany sterownik relatek r8125 będzie współdzielony czy w każdym kontenerze będzie musiał być powielony itd. itp.


@Miedzcu: Kontenera nie obchodzi to zazwyczaj. On nie potrzebuje sterowników, bo korzysta z tego samego jądra do host. Nie musi być powielany

Możesz to trochę porówać do aplikacji. Czy aplikacja potrzebuje sterownika? Nie. Tak samo kontener

2. Czy konteneryzacja to „bezproblemowe” opakowanie czy w ramach niego naglę się, pojawia miliard problemów (niedziałające wtyczki w
@Miedzcu: 1. Kontener powinien być z reguły "samowystarczalny" i w żadnym stopniu nie powinien zależeć od hosta, z wyjątkiem jajka.
2. Główną zaletą jest właśnie możliwość izolacji aplikacji od siebie. Jeśli masz to samo robić na czystych VM, to z załozenia, zarządzanie całą infrastrukturą (i wdrożenie na vm) jest bardziej złożone. To samo masz z failover (uruchomienie kontenera na innym węźle w klastrze compute / w innej lokalizacji). Łatwiejsze wdrożenie (z
@Miedzcu: zainstaluj sobie drugiego linuxa w virt/kvm i w nim testuj rzeczy :) konteneryzacja to forma lekkiej wirtualizacji/izolacji. Do tego co mowisz poza kontenerami sa również (wszystko wraz z zaleznosciami) flatpack i snap. Sporadycznie używam kontenerow, flatpack/snap w ostateczności. Ale kazdy chyba kiedys uwalil jedną paczke instalujac drugą. Czy warto poznac dobrze Linuksa? wg mnie bardzo, jakim zaskoczeniem dla mnie bylo kiedy w nowej pracy poznalem laski ktore go ogarniają. Ja
@Miedzcu:

gdybam: gdy instalowałem jakaś starą bibliotekę python z dzikiego repozytorium bo nie była już ta wersja nigdzie do pozyskania <według mojej skromnej wiedzy>, bo zależało mi na jakimś, starym niewspieranym już od dawna projekcie co ubiło wszystkie inne aplikacje korzystające z nowszej bibliotek


Do tego masz w pythonie venv