Hur man skickar miljövariabler till en Docker -behållare

How Pass Environment Variables Docker Container



Docker är ett program med öppen källkod som kör serverapplikationer med hjälp av containrar snarare än virtuella datorer. Docker är en utvecklings- och värdkonfiguration som använder färre resurser, så det är ingen överraskning att den sveper utvecklingsvärlden. Docker -miljövariabler är viktiga för denna procedur eftersom de lagrar data som är unik för varje användarkonto som får åtkomst till programvaran.

Om du använder ett modernt JavaScript -ramverk för att skapa en behållare för en enda app kan du upptäcka att konfigurationsinställningarna varierar beroende på var behållaren ska köras. Den grundläggande webbadressen för ditt API kan till exempel variera beroende på om du testar eller publicerar appen. Miljövariabler används ofta av utvecklare för att hantera detta problem eftersom koden fungerar på backend, miljövariabler används vanligtvis där.







Under bildkonstruktionen kan vi behöva skicka miljöinformation till driftbehållaren. För att göra det använder vi både ENV- och ARG -kommandon. ARG -kommandot skapar en variabel som kan tillhandahållas under byggprocessen. När den har definierats i Dockerfilen kan du använda parametern —build-arg för att tillhandahålla den till bildbyggaren. I Dockerfilen kan vi ha många ARG -instruktioner. I Dockerfile är ARG -kommandot det enda som kan komma före FROM -instruktionen.



Men ENV -instruktionen anger miljövariabeln, som i sin tur specificerar miljön för de konstruktionsinstruktioner som följer. ENV -instruktionen är tillgänglig både under byggprocessen och när behållaren startas med —env -flaggan. Vi kan dock inte skicka ENV -instruktionen när vi konstruerar bilden. ARG -direktivet har den nackdelen att det inte går att bestå efter att bilden har byggts. För att skicka miljödata inline när du skapar bilden använder vi bara både ENV och ARG. I den här guiden lär vi dig hur du skickar en miljövariabel till en dockningsbehållare.



Förutsättningar

För att skicka miljövariablerna till en dockningsbehållare måste du ha Ubuntu 20.04 Linux -system installerat. Se också till att installera den uppdaterade versionen av Docker på ditt system. Om det inte finns i systemet kan du göra installationen med hjälp av kommandot nedan.





$ sudo apt installera docker.io

I hela den här självstudien har vi använt Sudo -nyckelordet vilket innebär att du måste ha sudo -privilegier för att köra den här artikeln.



Metod för att klara miljövariablerna

För att skicka miljövariablerna till en dockningsbehållare måste du öppna kommandoradsterminalen med hjälp av genvägstangenten Ctrl+Alt+T eller genom att söka i programmenyn med hjälp av sökfältet. Följ nu stegen nedan:

Steg 1: Dra bilden
Under hela den här guiden kommer vi att använda Alpine, en liten (5 MB) Linux -bild. För att börja, ladda ner bilden lokalt med följande kommando:

$ sudo docker pull alpine: 3

Utmatningen visar den lyckade bilden.

Steg 2: Skicka miljövariabler
Med hjälp av –env-flaggan kan vi mata in miljövariabler som nyckel-värdepar direkt i kommandotolken när vi startar vår Docker-behållare. Låt oss använda följande kommando som en illustration:

$ sudo docker run --env VARIABLE1 = foobar alpine: 3

Det kommer inte att finnas någon specifik utdata för det här kommandot.

Steg 3: Reflekterande miljövariabler
För att återspegla miljövariablerna, använd följande kommando tillsammans med nyckelordsexporten.

$ export VARIABLE2 = foobar2

Det kommer inte att finnas någon specifik utdata för det här kommandot.

Steg 4: Ange miljövariabler
Nu, utan att specificera värdet på miljövariabeln, låt oss definiera miljövariabeln med hjälp av kommandot nedan i terminalen:

$ sudo docker run --env VARIABLE2 alpine: 3 env

I utdata kan du se att miljövariabeln har skickats till dockningsbehållaren.

Slutsats

I den här artikeln har vi övervägt begreppet och betydelsen av miljövariabler i docker. Vi har också gett dig steg-för-steg-guiden för att skicka en miljövariabel till en dockningsbehållare. Jag hoppas att du inte kommer att ha några problem när du skickar miljövariabeln till en dockningsbehållare.