6 bästa metoder för användning av containrar

Låt oss prata om några av de bästa metoderna du bör följa när du använder containrar.


Containerization används ofta i flera organisationer för att distribuera applikationer i en container. Dessa containrar är populära eftersom de är väldigt lätta. För att utnyttja det mesta av behållare, du bör följa några bästa metoder när du arbetar med dem.

Använd stabil basbild

Tack vare Docker har det aldrig varit enklare att skapa containerbilder.

Ange din basbild, lägg till dina ändringar och bygg din container. Det här är bra för att komma igång, men med standardbasbilderna kan det leda till stora bilder fulla av säkerhetsproblem. Undvik också att använda “Senaste” taggningsbilden för taggen eftersom det finns en stor chans att ett fel finns i den.

Debian eller Ubuntu används som basbild av de flesta Docker-bilder. De är till stor hjälp när det gäller kompatibilitet och enkel ombordstigning, men dessa basbilder kan lägga till hundratals megabyte extra omkostnad till din behållare.

Exempelvis är enkla Node.js och Go, “hej värld” -appar cirka 700 megabyte. Din ansökan är antagligen bara några få megabyte i storlek. Så allt detta extra overhead är slösat utrymme och en bra gömställe för säkerhetsproblem och buggar.

Om ditt programmeringsspråk eller stack inte har något alternativ för en liten basbild, kan du bygga din container med rå Alpine Linux som utgångspunkt. Detta ger dig fullständig kontroll över vad som går in i dina containrar.

Håll behållare bilder mindre

Att använda mindre basbilder är förmodligen det enklaste sättet att minska behållarstorleken.

Chansen är ditt språk eller stack som du använder ger en officiell bild som är mycket mindre än standardbilden. Låt oss till exempel titta på Node.js-behållaren. Att gå från standardnoden: senast till noden: 14-alpin minskar vår basbildstorlek med nästan tio gånger.

nodejs senaste tagg - geekflare

mot.….

nodejs alpin tagg - geekflare

I den nya Docker-filen börjar behållaren med noden: alpin bild, skapar en katalog för koden, installerar beroenden med NPM och slutligen startar Node.js-servern. Med den här uppdateringen är den resulterande behållaren nästan tio gånger mindre.

Du skapar behållaren ännu lättare genom att använda byggmönstret. Med tolkande språk skickas källkoden till en tolk, och sedan körs den direkt. Men med ett sammanställt språk förvandlas källkoden till kompilerad kod i förväg.

Nu med kompileringsspråk kräver kompileringssteget ofta verktyg som inte behövs för att köra koden. Så det betyder att du kan ta bort dessa verktyg helt från den slutliga behållaren. För att göra detta kan du använda byggmönster. Den första behållaren bygger koden och sedan packas den sammanställda koden i den slutliga behållaren utan alla kompilatorer och verktyg som krävs för att göra den sammanställda koden.

Att använda små basbilder och byggmönstret är bra sätt att skapa mycket mindre containrar utan mycket arbete.

Tagga dina behållarbilder

Docker-tagging är ett exceptionellt kraftfullt verktyg för oss när det gäller att hantera våra bilder. Det hjälper till att hantera olika versioner av en dockningsbild. Nedan är ett exempel på att bygga en dockningsbild med taggnamn v1.0.1

docker build -t geekflare / ubuntu: v1.0.1

Nu finns det två typer av taggar som används: Stabil taggar Unik taggar.

Använd stabila taggar för att behålla basbilden på behållaren. Undvik att använda dessa taggar för distributionsbehållare eftersom dessa taggar får uppdateringar ofta, och det kan leda till inkonsekvenser i produktionsmiljön.

Använd unika taggar för distributioner. Med hjälp av unika taggar kan du enkelt skala ditt produktionskluster till många noder. Det undviker inkonsekvenser, och värdar drar inte någon annan version av dockningsbilden.

Som en bra praxis bör du också låsa de utplacerade bildtaggarna genom att ställa skrivaktivering till falsk. Detta hjälper till att inte ta bort den utplacerade bilden från registret av misstag.

Behållarsäkerhet

Nedan är de grundläggande punkterna för att se till att behållaren är säker.

  • Verifiera äktheten för all programvara du installerar i din behållare
  • Använd signerade dockningsbilder eller bilder med giltigt kontrollsumma.
  • Se till att webbadressen använder HTTPS om du använder ett tredjepartslager.
  • Inkludera rätt GPG-nycklar innan du använder din pakethanterare för att uppdatera paketen
  • Kör aldrig dina applikationer som root. Du bör alltid använda användardirektivet inuti dockerfilen för att se till att du tappar användarens privilegier.
  • Kör inte SSH inuti behållaren.
  • Gör filsystemet skrivskyddat.
  • Använd namnområden för att dela upp ditt kluster.

Docker-riktmärket har tillhandahållits av Center for Internet Security (CIS) för att utvärdera säkerheten för en dockningscontainer. De har tillhandahållit ett open source-skript som heter Dockerbänk för säkerhet, som du kan köra för att kontrollera hur säker en dockningscontainer är.

En applikation per behållare

Virtuella maskiner är ganska bra på att köra flera saker parallellt, men när det gäller containrar bör du köra en enda applikation i en container. Om du till exempel kör en MEAN-applikation i en behållarmiljö bör den ha en behållare för MongoDB, en behållare för Express.js, en behållare för Angular och en behållare för Node.js.

Även containrar kan köra flera applikationer parallellt i det, men då kan du dra fördel av containermodellen. Nedan visas en korrekt och fel representation av att köra applikationer i en container.

enda app en behållare - geekflare

Behållarna är utformade för att ha en liknande livscykel som den applikation som den kör. När behållaren startar kommer applikationen att starta. När en behållare stannar stannar också applikationen.

Kör statslösa behållare

Behållare är i grunden utformade för att vara statslösa. I detta fall lagras de ihållande data som innehåller information om behållarens tillstånd utanför behållaren. Filer kan lagras i ett objektlager som molnlagring, för att lagra information om användarsessionen kan du använda databaser med låg latens som Redis och du kan också bifoga extern disk för blocknivålagring.

Genom att hålla förvaringen utanför behållaren kan du enkelt stänga av eller förstöra en behållare utan rädsla för att förlora data.

Om du använder statslösa containrar är det mycket lätt att flytta eller skala enligt företags behov.

Slutsats

Ovanstående är några av de viktigaste metoderna som man måste följa när man arbetar med containrar om du bygger en Docker-produktionsmiljö och kolla sedan hur du säkra det.

TAGGAR:

  • Hamnarbetare

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.

    Adblock
    detector