Hvor Docker hører hjemme på Proxmox: plasseringsvalget og compose-fella
Hvor du plasserer beholdere er ikke en smakssak, det er et spørsmål om skaderadius. Og en compose-fil ser ut som oppsett, men er i virkeligheten et program du kjører.
AtlasPVE ·
Denne artikkelen svarer på
- installere docker på proxmox
- proxmox docker i lxc eller vm
- docker på proxmox-verten
- er docker compose trygt
- hvor kjøre beholdere på proxmox
Proxmox er installert, og du vil kjøre beholdere. Spørsmålet er ikke "hvordan installerer jeg det", men hvor plasserer jeg det. Og det er ingen smakssak, det er et spørsmål om hvor mange ting som ryker når én ting ryker.
Tre plasseringer
Rett på verten. Det enkleste, og nettopp det man ikke skal gjøre. Verten er laget alt annet hviler på. Alt du installerer der ligger nå innenfor skaderadiusen til hver eneste virtuelle maskin: en avhengighetskollisjon, en full disk eller en dårlig oppdatering tar ikke bare beholderne dine, men alt på én gang.
Inne i en systembeholder. Lett og raskt satt opp. Til gjengjeld kjører du beholdere inne i en beholder, og det oppsettet har sine egne skarpe kanter: rettighetsmodellen, filsystemlagene, den delte kjernen. Valgt bevisst er det fornuftig; valgt fordi "det var enklere" gir det overraskelser.
Inne i en virtuell maskin. På papiret det tyngste og i praksis det reneste. Når beholderoppsettet raser, er det én virtuell maskin som raser, ikke serveren din. Og når du vil bygge det opp igjen, bygger du opp én maskin.
Det ene spørsmålet som avgjør
"Hvis dette ryker, hva skjer med alt det andre?" På verten er svaret "alt", inne i en virtuell maskin er svaret "én av dem". Ressursbruk, hvor lett det er å installere, alt det blir sekundært ved siden av det svaret.
Den andre halvdelen: compose er et program
En compose-fil ser ut som oppsett. Det er den ikke. Å kjøre den er å kjøre kode, og den kjører med dine rettigheter. To linjer i den kan gi beholderen hele maskinen.
Når folk kopierer en compose-fil fra nettet, kjenner de ikke det ubehaget de kjenner når de kopierer en kommando. Forskjellen ligger ikke i faren, men i utseendet: en kommando ser ut som en kommando, mens compose ser ut som en innstillingsfil. Å se slik ut gjør den ikke trygg.
Fire linjer å se på før kjøring
Monterer den vertens filsystem inn. Ber den om privilegert modus. Sender den inn beholderstyringens egen socket. Bruker den vertens nett direkte.
Disse fire er linjene som gjennomborer beholdergrensen: finnes én av dem, er den beholderen ikke lenger en beholder, den er verten selv. Å lese dem tar ti sekunder, og de ti sekundene er verdt mer enn alt annet i denne oppføringen.
Hva Atlas gjør
Atlas gransker compose-filer og installasjonsskript før installasjonen, og den granskingen sitter på serveren og ikke i grensesnittet. Uansett hva grensesnittet sender, kan kontrollen altså ikke hoppes over.
Funnene kommer i to nivåer. Rødt betyr noe som løfter beholderen ut av beholdergrensen, altså rettigheter likeverdige med vertens; da kreves uttrykkelig godkjenning. Gult betyr noe som kan gjøres bevisst, men som du må få vite om. På applikasjonskatalogsiden godtas rødt ikke i det hele tatt.
Det finnes én detalj til, og den teller: granskeren mener ingenting, den melder saksforholdet. Den sier ikke "dette er farlig", den sier "denne linjen gjør det der". Den som leser bestemmer, for den samme linjen kan være akseptabel i ett oppsett og uakseptabel i et annet.
Kilder
Proxmox sin egen dokumentasjon. På engelsk, og den har siste ord i denne saken.