Slik overfører du miljøvariabler til en Docker -beholder

How Pass Environment Variables Docker Container



Docker er et åpen kildekode-program som kjører serverprogrammer ved hjelp av containere i stedet for virtuelle maskiner. Docker er en utviklings- og hostingkonfigurasjon som bruker færre ressurser, så det er ingen overraskelse at den feier utviklingsverdenen. Docker -miljøvariabler er viktige for denne prosedyren fordi de lagrer data som er unike for hver brukerkonto som får tilgang til programvaren.

Ved å bruke et hvilket som helst moderne JavaScript -rammeverk for å lage en beholder for en enkelt app, kan du oppdage at konfigurasjonsinnstillingene varierer avhengig av hvor beholderen skal utføres. Den grunnleggende nettadressen for API -en din kan for eksempel variere avhengig av om du tester eller publiserer appen. Miljøvariabler brukes ofte av utviklere for å løse dette problemet fordi kode opererer på backend, miljøvariabler brukes vanligvis der.







Under bildekonstruksjonen må vi kanskje sende miljøinformasjon til driftsbeholderen. For å gjøre det bruker vi både ENV- og ARG -kommandoer. ARG -kommandoen oppretter en variabel som kan gis under byggeprosessen. Når den er definert i Dockerfile, kan du bruke parameteren build-arg for å levere den til bildebyggeren. I Dockerfile kan vi ha mange ARG -instruksjoner. I Dockerfile er ARG -kommandoen den eneste som kan komme før FROM -instruksjonen.



ENV -instruksjonen angir imidlertid miljøvariabelen, som igjen angir miljøet for konstruksjonsinstruksjonene som følger. ENV -instruksjonen er tilgjengelig under byggeprosessen, så vel som når beholderen startes med —env -flagget. Vi kan imidlertid ikke passere ENV -instruksjonen mens vi konstruerer bildet. ARG -direktivet har den ulempen at det ikke er i stand til å vedvare etter at bildet er bygget. For å sende miljødataene direkte når vi lager bildet, bruker vi bare både ENV og ARG. I denne veiledningen vil vi lære deg hvordan du sender en miljøvariabel til en dockerbeholder.



Forutsetninger

For å overføre miljøvariablene til en dockerbeholder må du ha Ubuntu 20.04 Linux -system installert. Sørg også for å installere den oppdaterte versjonen av Docker på systemet ditt. Hvis den ikke er tilstede i systemet, kan du installere den ved å bruke kommandoen nedenfor.





$ sudo apt installer docker.io

I hele denne opplæringen har vi brukt Sudo -søkeordet, noe som betyr at du må ha sudo -privilegier for å kjøre denne artikkelen.



Metode for å passere miljøvariablene

For å overføre miljøvariablene til en dockerbeholder må du åpne kommandolinjeterminalen ved å bruke hurtigtasten Ctrl+Alt+T eller ved å søke på den i applikasjonsmenyen ved hjelp av søkefeltet. Følg nå trinnene nedenfor:

Trinn 1: Trekk bildet
Gjennom denne veiledningen bruker vi Alpine, et lite (5 MB) Linux -bilde. For å begynne, last ned bildet lokalt ved å bruke følgende kommando:

$ sudo docker pull alpine: 3

Utgangen viser det vellykkede bildet.

Trinn 2: Passerer miljøvariabler
Ved å bruke –env-flagget kan vi legge inn miljøvariabler som nøkkel-verdi-par rett inn i ledeteksten når vi starter Docker-beholderen. La oss bruke følgende kommando som en illustrasjon:

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

Det vil ikke være noen spesifikk utgang for denne kommandoen.

Trinn 3: Reflekterer miljøvariabler
For å gjenspeile miljøvariablene, bruk følgende vedlagte kommando sammen med søkeordeksporten.

$ eksport VARIABLE2 = foobar2

Det vil ikke være noen spesifikk utgang for denne kommandoen.

Trinn 4: Spesifiser miljøvariabler
Nå, uten å spesifisere verdien av miljøvariabelen, la oss definere miljøvariabelen ved å bruke kommandoen nedenfor i terminalen:

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

I utgangen kan du se at miljøvariabelen har blitt overført til docker -beholderen.

Konklusjon

I denne artikkelen har vi drøftet konseptet og viktigheten av miljøvariabler i docker. Vi har også gitt deg en trinnvis veiledning for hvordan du sender en miljøvariabel til en dockerbeholder. Jeg håper du ikke vil ha noe problem mens du sender miljøvariabelen til en dockerbeholder.