Var Docker hör hemma på Proxmox: placeringsvalet och compose-fällan
Var du placerar behållare är ingen smaksak, det är en fråga om skaderadie. Och en compose-fil ser ut som konfiguration medan den i själva verket är ett program du kör.
AtlasPVE ·
Den här artikeln svarar på
- installera docker på proxmox
- proxmox docker i lxc eller vm
- docker på proxmox-värden
- är docker compose säkert
- var köra behållare på proxmox
Proxmox är installerat och du vill köra behållare. Frågan är inte "hur installerar jag det", utan var placerar jag det. Och det är ingen smaksak, det är en fråga om hur många saker som går sönder när en sak går sönder.
Tre placeringar
Direkt på värden. Det enklaste, och precis det man inte ska göra. Värden är lagret som allt annat vilar på. Allt du installerar där ligger nu inom skaderadien för varje virtuell maskin: en beroendekrock, en full disk eller en dålig uppdatering tar inte bara med sig dina behållare utan allt på en gång.
Inuti en systembehållare. Lätt och snabbt uppsatt. I gengäld kör du behållare inuti en behållare, och det upplägget har egna vassa kanter: rättighetsmodellen, filsystemslagren, den delade kärnan. Valt medvetet är det rimligt; valt för att "det var enklare" ger det överraskningar.
Inuti en virtuell maskin. På papperet det tyngsta och i praktiken det renaste. När behållaruppsättningen rasar är det en virtuell maskin som rasar, inte din server. Och när du vill bygga om den bygger du om en maskin.
Den enda frågan som avgör
"Om det här går sönder, vad händer med allt annat?" På värden är svaret "allt", inuti en virtuell maskin är svaret "en av dem". Resursanvändning, hur lätt det är att installera, allt det blir sekundärt bredvid det svaret.
Andra halvan: compose är ett program
En compose-fil ser ut som konfiguration. Det är den inte. Att köra den är att köra kod, och den kör med dina rättigheter. Två rader i den kan ge behållaren hela maskinen.
När folk kopierar en compose-fil från nätet känner de inte det obehag de känner när de kopierar ett kommando. Skillnaden ligger inte i faran utan i utseendet: ett kommando ser ut som ett kommando, medan compose ser ut som en inställningsfil. Att se ut så gör den inte säker.
Fyra rader att titta på före körning
Monterar den värdens filsystem inuti. Ber den om privilegierat läge. Skickar den in behållarhanteringens egen uttagspunkt. Använder den värdens nät direkt.
De fyra är raderna som genomborrar behållargränsen: finns en av dem är den behållaren inte längre en behållare, den är värden själv. Att läsa dem tar tio sekunder, och de tio sekunderna är värda mer än allt annat i den här posten.
Vad Atlas gör
Atlas granskar compose-filer och installationsskript före installationen, och den granskningen sitter på servern och inte i gränssnittet. Vad gränssnittet än skickar går kontrollen alltså inte att hoppa över.
Fynden kommer i två nivåer. Rött betyder något som lyfter ut behållaren ur behållargränsen, alltså rättigheter likvärdiga med värdens; i det fallet krävs ett uttryckligt godkännande. Gult betyder något som kan göras medvetet men som du måste få veta om. På applikationskatalogens sida godtas rött inte alls.
Det finns en detalj till och den räknas: granskaren tycker ingenting, den rapporterar sakförhållandet. Den säger inte "det här är farligt", den säger "den här raden gör det där". Den som läser beslutar, för samma rad kan vara godtagbar i en uppsättning och oacceptabel i en annan.
Källor
Proxmox egen dokumentation. På engelska, och den har sista ordet i den här frågan.