Hoi,
Sinds een paar maanden heb ik met veel plezier een homeserver opgezet met Proxmox en unprivileged LXC containers. De containers zijn allemaal voor een afzonderlijke toepassing (PiHole, CUPS, Sonarr, Radarr, Transmission, SMTP, TimeMachine etc)
Op de homeserver draait daarnaast 1 VM voor pfSense waar een DHCP server draait die de individuele hosts voorziet van een IP. Iedere host heeft dus een eigen IP / domeinnaam en met behulp van o.a. Caddy hoef ik geen portnummers te onthouden omdat alle hosts op 'normale' poorten, zoals 80 (http) en 443 (https) bereikbaar zijn waar mogelijk. Iedere hosts kan normale poorten gebruiken per host (zoals bijv. 53 bij Pihole). Dit omdat ik afzonderlijke hostnames wil (pihole.mdbraber.net) ipv iets als (homeserver:5353).
Qua resources wordt er op verschillende punten verwezen naar het feit dat Docker mogelijk minder resources gebruikt. Daarnaast is het (afhankelijk van hoe je het bekijkt) beter te managen door een single config file. Ik heb besloten me daarom eens te verdiepen of een 'overgang' naar Docker ipv LXC nuttig is.
Waar ik tegen aanloop is de networking stack van Docker die vooral lijkt te werken met een soort interne netwerken met bridged modus, dus als je niet macvlan wilt gebruiken). Het effect dat ik zie:
- Geen DHCP voor het uitdelen van IP adressen (maar gaat via Docker)
- Docker hosts zijn niet direct bereikbaar onder een eigen IP
- Omdat hosts geen eigen IP hebben niet makkelijk te integreren met interne DNS zodat ook externe clients ze kunnen bereiken.
Het lijkt dat alle problemen met verschillende scripts / hacks op te lossen zijn. Een andere optie is om Traefik te gebruiken voor de HTTP(S) routing - maar het nadeel is dat je dan in de problemen komt als je voor dezelfde hostname ook *niet* HTTP(S) verkeer wilt routen en het A record in de DNS verwijst naar Traefik... maar wellicht zie ik hier iets over het hoofd?
Kortom - het enige qua oplossing is Docker containers met de macvlan interface, waarbij het grotendeels lijkt op LXC containers met een andere manier van onderhoud (Dockerfile ipv via de shell). Bij LXC is het noodzakelijk het onderhoud goed te regelen met bijv. unattended-upgrades bij Debian wat meer werk kan zijn dan Docker.
Zijn er andere voordelen van Docker waarom dit te verkiezen kan zijn boven LXC? Iemand ervaringen met de overstap van de een naar de ander? So far kom ik tot de volgende afwegingen:
Docker
+ Manageable met Dockerfile
+ Lichter qua resources dan LXC
- Complexer om op te zetten (maken Dockerfile ipv installeren via shell)
- Complexere networking stack, tenzij gebruik van macvlan
LXC
+ Makkelijk / dynamisch te onderhouden via shell
+ Direct netwerk (gebruik DHCP, hostnames)
+ Beter isolatie host/container
- Iets zwaarder in resources dan Docker
- Meer onderhoud nodig (upgrades, Caddy)
Benieuwd naar jullie ervaringen!
P.S. ik tag @FireDrunk hier even omdat die volgens mij ooit aangaf in een ander topic veel met Docker te doen.
Sinds een paar maanden heb ik met veel plezier een homeserver opgezet met Proxmox en unprivileged LXC containers. De containers zijn allemaal voor een afzonderlijke toepassing (PiHole, CUPS, Sonarr, Radarr, Transmission, SMTP, TimeMachine etc)
Op de homeserver draait daarnaast 1 VM voor pfSense waar een DHCP server draait die de individuele hosts voorziet van een IP. Iedere host heeft dus een eigen IP / domeinnaam en met behulp van o.a. Caddy hoef ik geen portnummers te onthouden omdat alle hosts op 'normale' poorten, zoals 80 (http) en 443 (https) bereikbaar zijn waar mogelijk. Iedere hosts kan normale poorten gebruiken per host (zoals bijv. 53 bij Pihole). Dit omdat ik afzonderlijke hostnames wil (pihole.mdbraber.net) ipv iets als (homeserver:5353).
Qua resources wordt er op verschillende punten verwezen naar het feit dat Docker mogelijk minder resources gebruikt. Daarnaast is het (afhankelijk van hoe je het bekijkt) beter te managen door een single config file. Ik heb besloten me daarom eens te verdiepen of een 'overgang' naar Docker ipv LXC nuttig is.
Waar ik tegen aanloop is de networking stack van Docker die vooral lijkt te werken met een soort interne netwerken met bridged modus, dus als je niet macvlan wilt gebruiken). Het effect dat ik zie:
- Geen DHCP voor het uitdelen van IP adressen (maar gaat via Docker)
- Docker hosts zijn niet direct bereikbaar onder een eigen IP
- Omdat hosts geen eigen IP hebben niet makkelijk te integreren met interne DNS zodat ook externe clients ze kunnen bereiken.
Het lijkt dat alle problemen met verschillende scripts / hacks op te lossen zijn. Een andere optie is om Traefik te gebruiken voor de HTTP(S) routing - maar het nadeel is dat je dan in de problemen komt als je voor dezelfde hostname ook *niet* HTTP(S) verkeer wilt routen en het A record in de DNS verwijst naar Traefik... maar wellicht zie ik hier iets over het hoofd?
Kortom - het enige qua oplossing is Docker containers met de macvlan interface, waarbij het grotendeels lijkt op LXC containers met een andere manier van onderhoud (Dockerfile ipv via de shell). Bij LXC is het noodzakelijk het onderhoud goed te regelen met bijv. unattended-upgrades bij Debian wat meer werk kan zijn dan Docker.
Zijn er andere voordelen van Docker waarom dit te verkiezen kan zijn boven LXC? Iemand ervaringen met de overstap van de een naar de ander? So far kom ik tot de volgende afwegingen:
Docker
+ Manageable met Dockerfile
+ Lichter qua resources dan LXC
- Complexer om op te zetten (maken Dockerfile ipv installeren via shell)
- Complexere networking stack, tenzij gebruik van macvlan
LXC
+ Makkelijk / dynamisch te onderhouden via shell
+ Direct netwerk (gebruik DHCP, hostnames)
+ Beter isolatie host/container
- Iets zwaarder in resources dan Docker
- Meer onderhoud nodig (upgrades, Caddy)
Benieuwd naar jullie ervaringen!
P.S. ik tag @FireDrunk hier even omdat die volgens mij ooit aangaf in een ander topic veel met Docker te doen.