Discussion:
Docker & snap, AppImage itp
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Pawel
2023-03-28 00:38:07 UTC
Permalink
Witam

Nigdy nie miałem styczności z dockerem (trochę czytałem, ale głównie
jako narzędzie przy rozwijaniu aplikacji, a nie jako alternatywa dla
snapa itp), ale z tego co zauważyłem, coraz więcej aplikacji jest
rozpowszechnianych w formie obrazu Dockera jako alternatywa do
wynalazków typu snap, AppImage itp.

Teraz pytanie, a raczej pytania.
1. Czy jest sens brać pod uwagę obraz dockera jako aplikację uruchamianą
na serwerze produkcyjnym(domowym, ale jednak trzymam tam ważne dane)?
2. Jak takie coś się sprawuje? wydajność, bezpieczeństwo, stabilność itp.
3. Łatwość instalacji i użytkownia?
4. Jaki jest narzut CPU/HDD dla aplikacji dockerowej.

Konkretnie teraz, to myślę nad instalacją AdGuard Home, ale widziałem
także nextclouda i kilka innych aplikacji.
Roman Tyczka
2023-03-28 11:19:32 UTC
Permalink
Post by Pawel
Witam
Nigdy nie miałem styczności z dockerem (trochę czytałem, ale głównie
jako narzędzie przy rozwijaniu aplikacji, a nie jako alternatywa dla
snapa itp), ale z tego co zauważyłem, coraz więcej aplikacji jest
rozpowszechnianych w formie obrazu Dockera jako alternatywa do
wynalazków typu snap, AppImage itp.
Teraz pytanie, a raczej pytania.
1. Czy jest sens brać pod uwagę obraz dockera jako aplikację uruchamianą
na serwerze produkcyjnym(domowym, ale jednak trzymam tam ważne dane)?
2. Jak takie coś się sprawuje? wydajność, bezpieczeństwo, stabilność itp.
3. Łatwość instalacji i użytkownia?
4. Jaki jest narzut CPU/HDD dla aplikacji dockerowej.
Konkretnie teraz, to myślę nad instalacją AdGuard Home, ale widziałem
także nextclouda i kilka innych aplikacji.
Docker jest genialny i warto go używać, jest lekki i stabilny, bo bazuje
na jądrze systemu hosta i tylko ma dorzucone środowisko uruchomieniowe
czyli biblioteki i inne potrzebne rzeczy. Jest bezpieczny i szybki, w
zasadzie nie ma narzutu na cpu bo kod jest wykonywany natywnie. A co do
dysku to obrazy dockerowe są zbudowane z warstw i w praktyce jak masz 5
apek dockerowych bazujących na obrazie np. ubuntu to 90% tych 5 obrazów
będzie wspolne dla każdej z aplikacji. Innymi słowy o ile sam obraz apki
ma np. 600MB i takich aplikacji masz 5 to nie zajmą na dysku 3GB tylko
np. 1GB.

Dane aplikacji mogą być zmapowane na zewnątrz kontenera, czyli do
katalogu systemu hosta, wtedy masz je poza dockerem i możesz z nimi
robić co chcesz (archiwizować itd.).

Bardzo polecam, genialny wynalazek.
--
pzdr
Roman
Dominik 'Rathann' Mierzejewski
2023-03-28 13:17:20 UTC
Permalink
Date: Tue, 28 Mar 2023 13:19:32
From: Roman Tyczka
Post by Roman Tyczka
Post by Pawel
Witam
Nigdy nie miałem styczności z dockerem (trochę czytałem, ale głównie
jako narzędzie przy rozwijaniu aplikacji, a nie jako alternatywa dla
snapa itp), ale z tego co zauważyłem, coraz więcej aplikacji jest
rozpowszechnianych w formie obrazu Dockera jako alternatywa do
wynalazków typu snap, AppImage itp.
Teraz pytanie, a raczej pytania.
1. Czy jest sens brać pod uwagę obraz dockera jako aplikację uruchamianą
na serwerze produkcyjnym(domowym, ale jednak trzymam tam ważne dane)?
2. Jak takie coś się sprawuje? wydajność, bezpieczeństwo, stabilność itp.
3. Łatwość instalacji i użytkownia?
4. Jaki jest narzut CPU/HDD dla aplikacji dockerowej.
Konkretnie teraz, to myślę nad instalacją AdGuard Home, ale widziałem
także nextclouda i kilka innych aplikacji.
Docker jest genialny i warto go używać, jest lekki i stabilny, bo bazuje
na jądrze systemu hosta i tylko ma dorzucone środowisko uruchomieniowe
czyli biblioteki i inne potrzebne rzeczy.
Co do stabilności, to nie jest tak różowo, bo poważną wadą dockera jest
demon dockera, który zarządza kontenerami i jeśli z jakiegoś powodu
padnie, to tracisz dostęp do i kontrolę nad wszystkimi uruchomionymi
kontenerami. Mówię z doświadczenia i to produkcyjnego.
Post by Roman Tyczka
Jest bezpieczny
Są bezpieczniejsze rozwiązania. W/w wada rzutuje na bezpieczeństwo, bo
demon dockera działa z prawami roota i były w nim dziury umożliwiające
włamanie do hosta z poziomu kontenera.

Zamiast dockera polecam podman. Obrazy dockera z nim działają i jest
niemal 100% kompatybilny z dockerem jeśli chodzi o linię poleceń. Do
tego nie wymaga roota.
Post by Roman Tyczka
i szybki, w
zasadzie nie ma narzutu na cpu bo kod jest wykonywany natywnie. A co do
dysku to obrazy dockerowe są zbudowane z warstw i w praktyce jak masz 5
apek dockerowych bazujących na obrazie np. ubuntu to 90% tych 5 obrazów
będzie wspolne dla każdej z aplikacji. Innymi słowy o ile sam obraz apki
ma np. 600MB i takich aplikacji masz 5 to nie zajmą na dysku 3GB tylko
np. 1GB.
Tu zgoda, ale musisz dobierać obrazy kontenerów pod tym kątem. Jeśli
bazowe obrazy będą pochodziły z różnych dystrybucji, to współdzielenia
warstw nie będzie.
Post by Roman Tyczka
Dane aplikacji mogą być zmapowane na zewnątrz kontenera, czyli do
katalogu systemu hosta, wtedy masz je poza dockerem i możesz z nimi
robić co chcesz (archiwizować itd.).
Bardzo polecam, genialny wynalazek.
Pomysł, który realizuje docker nie jest nowy, ale faktycznie to dopiero
docker "wprowadził kontenery pod strzechy", bo jest stosunkowo łatwy
w użyciu. Jednak na dzień dzisiejszy polecam podman jako bezpieczniejszą
i bardziej otwartą alternatywę.

Pozdrawiam,
Dominik
--
Fedora https://getfedora.org | RPM Fusion http://rpmfusion.org
There should be a science of discontent. People need hard times and
oppression to develop psychic muscles.
-- from "Collected Sayings of Muad'Dib" by the Princess Irulan
Kamil Jońca
2023-03-28 15:52:28 UTC
Permalink
Dominik 'Rathann' Mierzejewski <***@greysector.net> writes:

[...]
Post by Dominik 'Rathann' Mierzejewski
Są bezpieczniejsze rozwiązania. W/w wada rzutuje na bezpieczeństwo, bo
demon dockera działa z prawami roota i były w nim dziury umożliwiające
włamanie do hosta z poziomu kontenera.
Zamiast dockera polecam podman. Obrazy dockera z nim działają i jest
niemal 100% kompatybilny z dockerem jeśli chodzi o linię poleceń. Do
tego nie wymaga roota.
No nie wiem.

Tak na szybko nie udało mi się uruchomić mojego lokalnego obrazu z inn-em w
środku - nie widział obrazu, a znalezione poradniki jak skonwertować
hm...,

a próba zbudowania z dockerfile, skończyła się:
--8<---------------cut here---------------start------------->8---
sudo podman build --tag inn-restore .
[sudo] password for kjonca:
STEP 1/13: FROM debian:sid
STEP 2/13: RUN mkdir /etc/news /var/lib/news /var/spool/news /spool /run/news
WARN[0002] Error validating CNI config file /etc/cni/net.d/87-podman-bridge.conflist: [failed to find plugin "bridge" in path [/usr/local/libexec/cni /usr/libexec/cni /usr/local/lib/cni /usr/lib/cni /opt/cni/bin] failed to find plugin "portmap" in path [/usr/local/libexec/cni /usr/libexec/cni /usr/local/lib/cni /usr/lib/cni /opt/cni/bin] failed to find plugin "firewall" in path [/usr/local/libexec/cni /usr/libexec/cni /usr/local/lib/cni /usr/lib/cni /opt/cni/bin] failed to find plugin "tuning" in path [/usr/local/libexec/cni /usr/libexec/cni /usr/local/lib/cni /usr/lib/cni /opt/cni/bin]]
WARN[0002] Failed to load cached network config: network podman not found in CNI cache, falling back to loading network podman from disk
WARN[0002] 1 error occurred:
* plugin type="tuning" failed (delete): failed to find plugin "tuning" in path [/usr/local/libexec/cni /usr/libexec/cni /usr/local/lib/cni /usr/lib/cni /opt/cni/bin]
--8<---------------cut here---------------end--------------->8---

po doinstalowaniu containernetworking-plugins

--8<---------------cut here---------------start------------->8---
sudo podman build --tag inn-restore .
STEP 1/13: FROM debian:sid
STEP 2/13: RUN mkdir /etc/news /var/lib/news /var/spool/news /spool /run/news
WARN[0003] Failed to load cached network config: network podman not found in CNI cache, falling back to loading network podman from disk
WARN[0003] 1 error occurred:
* plugin type="bridge" failed (delete): cni plugin bridge failed: running [/usr/sbin/iptables -t nat -D POSTROUTING -s 10.88.0.2 -j CNI-b47928a71b73626e7d042263 -m comment --comment name: "podman" id: "buildah-buildah1578356132" --wait]: exit status 2: iptables v1.8.9 (nf_tables): Chain 'CNI-b47928a71b73626e7d042263' does not exist
Try `iptables -h' or 'iptables --help' for more information.
--8<---------------cut here---------------end--------------->8---

Ale powtarzam, to na szybko.

Więc może to jest i przyszłość, ale z reklamowaniem tej kompatybilności
to bym nie przesadzał.

KJ
--
http://wolnelektury.pl/wesprzyj/teraz/
Pawel
2023-03-28 16:55:08 UTC
Permalink
Post by Kamil Jońca
Ale powtarzam, to na szybko.
Więc może to jest i przyszłość, ale z reklamowaniem tej kompatybilności
to bym nie przesadzał.
To mnie trochę zddołowałeś, bo miałem się brać za tego podmana, a teraz
się zastanawiam, czy jest sens. Żeby się potem nie okazało, że będzie
trzeba wracać na dockera, ale to chyba nie jest problem, bo jak
rozumiem, to wszystkie ustawieina zapisują się w obrazie? A może nie?
Kamil Jońca
2023-03-28 17:03:02 UTC
Permalink
Post by Pawel
Post by Kamil Jońca
Ale powtarzam, to na szybko.
Więc może to jest i przyszłość, ale z reklamowaniem tej
kompatybilności
to bym nie przesadzał.
To mnie trochę zddołowałeś, bo miałem się brać za tego podmana, a
teraz się zastanawiam, czy jest sens. Żeby się potem nie okazało, że
będzie trzeba wracać na dockera, ale to chyba nie jest problem, bo jak
rozumiem, to wszystkie ustawieina zapisują się w obrazie? A może nie?
Ujmę to tak: ja pewnie się podmana chcial uczyć bo z opisu wygląda
ciekawie.
Ale nie nastawiałbym sie, że będzie to 'lepszy docker'

Przy okazji, może ktoś będzie wiedział: czy podman, podobnie jak docker,
nie zauważył[1], że iptables są passe i teraz lepiej skupić sie na nft?



KJ
[1] tak by wynikało z komunikatu błędu.
--
http://stopstopnop.pl/stop_stopnop.pl_o_nas.html
marrgol
2023-03-28 17:44:40 UTC
Permalink
Post by Kamil Jońca
Przy okazji, może ktoś będzie wiedział: czy podman, podobnie jak docker,
nie zauważył[1], że iptables są passe i teraz lepiej skupić sie na nft?
[…]
[1] tak by wynikało z komunikatu błędu.
No, jak dla mnie, to z tych załączonych komunikatów wynika, że podman
używa wariantu programu iptables korzystającego z nftables (są dwa:
legacy i nf_tables) więc chyba jednak zauważył, przynajmniej „trynd”…
;-)
--
mrg
Kamil Jońca
2023-03-28 17:55:58 UTC
Permalink
Post by marrgol
Post by Kamil Jońca
Przy okazji, może ktoś będzie wiedział: czy podman, podobnie jak docker,
nie zauważył[1], że iptables są passe i teraz lepiej skupić sie na nft?
[…]
[1] tak by wynikało z komunikatu błędu.
No, jak dla mnie, to z tych załączonych komunikatów wynika, że podman
legacy i nf_tables) więc chyba jednak zauważył, przynajmniej „trynd”…
;-)
Chyba nie - wołał iptables - ale nie będe się upierał.
KJ
--
http://stopstopnop.pl/stop_stopnop.pl_o_nas.html
Pawel
2023-03-28 18:01:50 UTC
Permalink
W dniu 28.03.2023 o 19:03, Kamil Jońca pisze:
podman, podobnie jak docker,
Post by Kamil Jońca
nie zauważył[1], że iptables są passe i teraz lepiej skupić sie na nft?
A to co? Czyżby chcieli udupić iptables? Tyle czasu spędziłem nad
pisaniem skryptu do uruchamiana firewalla, więc bym się wkurzył, jakbym
musiał go przerabiać, albo całkowicie pisać od nowa.
A ten nft, to chociaż ogarnia ipset?
Kamil Jońca
2023-03-28 18:39:09 UTC
Permalink
Post by Kamil Jońca
podman, podobnie jak docker,
Post by Kamil Jońca
nie zauważył[1], że iptables są passe i teraz lepiej skupić sie na nft?
A to co? Czyżby chcieli udupić iptables? Tyle czasu spędziłem nad
pisaniem skryptu do uruchamiana firewalla, więc bym się wkurzył,
jakbym musiał go przerabiać, albo całkowicie pisać od nowa.
A ten nft, to chociaż ogarnia ipset?
Juz od dłużego czasu komenda "iptables" w nowszych dystrybucjach woła
"wrappera". I sugeruję się tym zainteresować.
generalnie ja z nft jestem zadowolony, ale pełne wykorzystanie ich
możliwości wymaga zmiany pewnych przzwyczajeń wyniesionych z iptablesów.
KJ
--
http://stopstopnop.pl/stop_stopnop.pl_o_nas.html
Dominik 'Rathann' Mierzejewski
2023-03-29 10:36:42 UTC
Permalink
Date: Tue, 28 Mar 2023 17:52:28
From: Kamil Jońca
Post by Kamil Jońca
[...]
Post by Dominik 'Rathann' Mierzejewski
Są bezpieczniejsze rozwiązania. W/w wada rzutuje na bezpieczeństwo, bo
demon dockera działa z prawami roota i były w nim dziury umożliwiające
włamanie do hosta z poziomu kontenera.
Zamiast dockera polecam podman. Obrazy dockera z nim działają i jest
niemal 100% kompatybilny z dockerem jeśli chodzi o linię poleceń. Do
tego nie wymaga roota.
No nie wiem.
Tak na szybko nie udało mi się uruchomić mojego lokalnego obrazu z inn-em w
środku - nie widział obrazu, a znalezione poradniki jak skonwertować
hm...,
--8<---------------cut here---------------start------------->8---
sudo podman build --tag inn-restore .
A dlaczego sudo? Pisałem, że działa ze zwykłego usera.
Poza tym SOA#1, na Fedorze działa. ;)

Widać Debianowa paczka jest niedorobiona.

Pozdrawiam,
Dominik
--
Fedora https://getfedora.org | RPM Fusion http://rpmfusion.org
There should be a science of discontent. People need hard times and
oppression to develop psychic muscles.
-- from "Collected Sayings of Muad'Dib" by the Princess Irulan
Kamil Jońca
2023-03-29 11:06:02 UTC
Permalink
Post by Dominik 'Rathann' Mierzejewski
Date: Tue, 28 Mar 2023 17:52:28
From: Kamil Jońca
Post by Kamil Jońca
[...]
Post by Dominik 'Rathann' Mierzejewski
Są bezpieczniejsze rozwiązania. W/w wada rzutuje na bezpieczeństwo, bo
demon dockera działa z prawami roota i były w nim dziury umożliwiające
włamanie do hosta z poziomu kontenera.
Zamiast dockera polecam podman. Obrazy dockera z nim działają i jest
niemal 100% kompatybilny z dockerem jeśli chodzi o linię poleceń. Do
tego nie wymaga roota.
No nie wiem.
Tak na szybko nie udało mi się uruchomić mojego lokalnego obrazu z inn-em w
środku - nie widział obrazu, a znalezione poradniki jak skonwertować
hm...,
--8<---------------cut here---------------start------------->8---
sudo podman build --tag inn-restore .
A dlaczego sudo? Pisałem, że działa ze zwykłego usera.
Poza tym SOA#1, na Fedorze działa. ;)
Na zwykłym userze też nie działało.
Post by Dominik 'Rathann' Mierzejewski
Widać Debianowa paczka jest niedorobiona.
Nie wiem czy jest niedorobiona. Brakowało uidmap - być może przy
kontenerach z roota nie jest potrzebna i nie chcieli wprowadzać
zależności.

Koniec końców udało mi sie odpalić "mój" kontener (acz zbudowałem go od
zera, a nie zmigrowałem z dockera).

Więc jest postęp. I w zasadzie mogę powtórzyć. Wydaje się to krok
naprzód względem dockera, ale nie liczyłbym że "bezmyślna" zamiana
komend "dockker" -> "podman" da dobry wynik.

Teraz pewnie będę musiał poczytać trochę o sieciach w tym podmanie.
Bo siec w dockerze doprowadza mnie do białej gorączki.


KJ
--
http://wolnelektury.pl/wesprzyj/teraz/
Pawel
2023-03-28 17:55:32 UTC
Permalink
Post by Dominik 'Rathann' Mierzejewski
kontenerami. Mówię z doświadczenia i to produkcyjnego.
A mówiąc o produkcji, to masz na myśli serwer wystawiony na świat i
aplikacja które przyjmuje zapytania ze świata? czy raczej chodzi o
serwer w LANie?
Post by Dominik 'Rathann' Mierzejewski
Są bezpieczniejsze rozwiązania. W/w wada rzutuje na bezpieczeństwo, bo
demon dockera działa z prawami roota i były w nim dziury umożliwiające
włamanie do hosta z poziomu kontenera.
Zamiast dockera polecam podman. Obrazy dockera z nim działają i jest
niemal 100% kompatybilny z dockerem jeśli chodzi o linię poleceń. Do
tego nie wymaga roota.
A jak ma się sprawa z portami? Z tego co czytałem, to podman, z racji na
to, że działa jako zwykły user, to niema dostępu do portów ponizej 1025.
A jak aplikacja musi mieć dostęp do takiego portu? Chodzi mi o ten
przykładowy AdGuard Home, który jako serwer DNS, musi używać portu 53.
Wiem, że można przekierować porty na wyższe w podmanie, ale nie wiem,
czy w tym przypadku się da, bo szczerze mówiąc, to nie widziałem nigdy
klienta DNS,który by umożliwial zmianę portu.
Czyżby trzeba było jednak uruchamiać podmana jako root?

A czy dałob się zrobić coś takiego?
1. Uruchomić podmana jako user bez przypisanego shella (dodatkowe
zabezpieczenie)
2. Wystawić dane (system plików) poza dockera?
Chyba coś takiego nie zadzała, bo jak user nie ma shella, to chyba nie
może także zapisywać?
Wiem, że można kombinować z sudo, ale żeby sam docker zapisywał, to już
chyba nie bardzo?
Roman Tyczka
2023-03-29 10:59:29 UTC
Permalink
Post by Dominik 'Rathann' Mierzejewski
Post by Roman Tyczka
Jest bezpieczny
Są bezpieczniejsze rozwiązania. W/w wada rzutuje na bezpieczeństwo, bo
demon dockera działa z prawami roota i były w nim dziury umożliwiające
włamanie do hosta z poziomu kontenera.
Zamiast dockera polecam podman. Obrazy dockera z nim działają i jest
niemal 100% kompatybilny z dockerem jeśli chodzi o linię poleceń. Do
tego nie wymaga roota.
Co masz na myśli z tym rootem? Że polecenie docker trzeba poprzedzać
sudo? Nie trzeba, to co innego?
--
pzdr
Roman
Kamil Jońca
2023-03-29 11:10:47 UTC
Permalink
Post by Roman Tyczka
Post by Dominik 'Rathann' Mierzejewski
Post by Roman Tyczka
Jest bezpieczny
Są bezpieczniejsze rozwiązania. W/w wada rzutuje na bezpieczeństwo, bo
demon dockera działa z prawami roota i były w nim dziury umożliwiające
włamanie do hosta z poziomu kontenera.
Zamiast dockera polecam podman. Obrazy dockera z nim działają i jest
niemal 100% kompatybilny z dockerem jeśli chodzi o linię poleceń. Do
tego nie wymaga roota.
Co masz na myśli z tym rootem? Że polecenie docker trzeba poprzedzać
sudo? Nie trzeba, to co innego?
Kontenery dockerowe są zarządzane przez demona. Tenże demon chodzi z
roota. Więc jak go przejmiemy (co się zdarzało) to możemy zrobić kuku
hostowi.

komenda "docker cośtam" generalnie wysyła polecenie do tego demona.


Z tego co widzę kontener podmana to "zwykła" komenda użytkownika, więc
trudniej mu sie podłączyć do zarządcy, którego ... nie ma.

KJ
--
http://wolnelektury.pl/wesprzyj/teraz/
Roman Tyczka
2023-03-29 14:09:18 UTC
Permalink
Post by Kamil Jońca
Post by Roman Tyczka
Co masz na myśli z tym rootem? Że polecenie docker trzeba poprzedzać
sudo? Nie trzeba, to co innego?
Kontenery dockerowe są zarządzane przez demona. Tenże demon chodzi z
roota. Więc jak go przejmiemy (co się zdarzało) to możemy zrobić kuku
hostowi.
komenda "docker cośtam" generalnie wysyła polecenie do tego demona.
Acha, ok, dzięki.
Post by Kamil Jońca
Z tego co widzę kontener podmana to "zwykła" komenda użytkownika, więc
trudniej mu sie podłączyć do zarządcy, którego ... nie ma.
Ok, a w takiej razie jak zrobić, żeby obraz był automatycznie startowany
wraz z systemem lub po upadku dockera? Bo docker to umie, a podman sam
chyba nie, skoro nie ma demona?
--
pzdr
Roman
Kamil Jońca
2023-03-29 14:59:03 UTC
Permalink
Post by Roman Tyczka
Post by Kamil Jońca
Post by Roman Tyczka
Co masz na myśli z tym rootem? Że polecenie docker trzeba poprzedzać
sudo? Nie trzeba, to co innego?
Kontenery dockerowe są zarządzane przez demona. Tenże demon chodzi z
roota. Więc jak go przejmiemy (co się zdarzało) to możemy zrobić kuku
hostowi.
komenda "docker cośtam" generalnie wysyła polecenie do tego demona.
Acha, ok, dzięki.
Post by Kamil Jońca
Z tego co widzę kontener podmana to "zwykła" komenda użytkownika, więc
trudniej mu sie podłączyć do zarządcy, którego ... nie ma.
Ok, a w takiej razie jak zrobić, żeby obraz był automatycznie
startowany wraz z systemem lub po upadku dockera? Bo docker to umie, a
podman sam chyba nie, skoro nie ma demona?
Ja bym pewnie napisał *.service startujące z systemd.
KJ
--
http://stopstopnop.pl/stop_stopnop.pl_o_nas.html
Pawel
2023-03-28 17:27:34 UTC
Permalink
Post by Roman Tyczka
Docker jest genialny i warto go używać, jest lekki i stabilny, bo bazuje
na jądrze systemu hosta i tylko ma dorzucone środowisko uruchomieniowe
czyli biblioteki i inne potrzebne rzeczy. Jest bezpieczny i szybki, w
zasadzie nie ma narzutu na cpu bo kod jest wykonywany natywnie. A co do
dysku to obrazy dockerowe są zbudowane z warstw i w praktyce jak masz 5
apek dockerowych bazujących na obrazie np. ubuntu to 90% tych 5 obrazów
Czy różne wersje Ubuntu (20.04/22.04) traktowane są jako różne
dystrybucje? Pewnie tak.
A rozne dystrybucje na hoscie (Ubuntu) i w dockerze (np Arch) maja
jakies znaczenie? czy docker jest raczej traktowany jak maszyna wirtualna?

A czy jest jakiś narzut na RAM? skoro docker to cos w rodzaju maszyny
wirtualnej?
Post by Roman Tyczka
Dane aplikacji mogą być zmapowane na zewnątrz kontenera, czyli do
katalogu systemu hosta, wtedy masz je poza dockerem i możesz z nimi
robić co chcesz (archiwizować itd.).
A jak ma się sprawa z aplikacjami które wymagają dodatkowych aplikacji?
Chodzi mi tu np o bazę danych? Czy taka baza danych jest w dockerze, czy
można ją wyciagnąc (w sensie, zapis byłby do bazy na hoście, albo gdzieś
w necie) poza dockera? Jeśli się da, to jak to zrobić?

Z tego co czytałem, to każdy obraz dockera ma swój adres IP i się
zastanawiam, jak to działa? W sensie, czy ten adres IP jest dostępny
spoza hosta i jest np dostepny z poziomu fizycznego LANu? a może jest
tworzona tylko jakaś wirtualna karta sieciowa, która tworzy wirtualną
sieć na hoście?
Roman Tyczka
2023-03-29 11:07:08 UTC
Permalink
Post by Pawel
Post by Roman Tyczka
Docker jest genialny i warto go używać, jest lekki i stabilny, bo
bazuje na jądrze systemu hosta i tylko ma dorzucone środowisko
uruchomieniowe czyli biblioteki i inne potrzebne rzeczy. Jest
bezpieczny i szybki, w zasadzie nie ma narzutu na cpu bo kod jest
wykonywany natywnie. A co do dysku to obrazy dockerowe są zbudowane z
warstw i w praktyce jak masz 5 apek dockerowych bazujących na obrazie
np. ubuntu to 90% tych 5 obrazów
Czy różne wersje Ubuntu (20.04/22.04) traktowane są jako różne
dystrybucje? Pewnie tak.
A rozne dystrybucje na hoscie (Ubuntu) i w dockerze (np Arch) maja
jakies znaczenie? czy docker jest raczej traktowany jak maszyna wirtualna?
A czy jest jakiś narzut na RAM? skoro docker to cos w rodzaju maszyny
wirtualnej?
To kompletnie nie ma nic wspólnego z virtual machine. Narzut na ram jest
mniej więcej taki jaki ma aplikacja odpalona natywnie. Przyjmij, że
docker to taki chroot na sterydach, może będzie prościej.
Post by Pawel
Post by Roman Tyczka
Dane aplikacji mogą być zmapowane na zewnątrz kontenera, czyli do
katalogu systemu hosta, wtedy masz je poza dockerem i możesz z nimi
robić co chcesz (archiwizować itd.).
A jak ma się sprawa z aplikacjami które wymagają dodatkowych aplikacji?
Chodzi mi tu np o bazę danych? Czy taka baza danych jest w dockerze, czy
można ją wyciagnąc (w sensie, zapis byłby do bazy na hoście, albo gdzieś
w necie) poza dockera? Jeśli się da, to jak to zrobić?
Poczytaj o volumenach dockerowych, volumen może być podmontowany pod
katalog i wtedy wszystko trafia w ten katalog. Działa to tak, że mówisz
dockerowi przy odpalaniu obrazu, że jego wewnętrzny katalog np.
/var/data ma być zmapowany na Twój ~/app/data i wszystko co on tam
zapisze ląduje w tym co wskazałeś, może to być baza, może log czy cokolwiek.
Jeszcze przy okazji dodam, że jak chcesz odpalić aplikację korzystającą
z np. mysqla to zazwyczaj odpala się dwa dockery, jeden z aplikacją,
drugi bazą i łączy je wirtualną siecią (docker compose pomaga).
Post by Pawel
Z tego co czytałem, to każdy obraz dockera ma swój adres IP i się
zastanawiam, jak to działa? W sensie, czy ten adres IP jest dostępny
spoza hosta i jest np dostepny z poziomu fizycznego LANu? a może jest
tworzona tylko jakaś wirtualna karta sieciowa, która tworzy wirtualną
sieć na hoście?
Nie jest dostępny adres spoza hosta, możesz jedynie mapować porty z
wnętrza kontenerów na porty hosta i te porty w LANie są normalnie
obsługiwane oczywiście.
--
pzdr
Roman
Loading...