Kaip perduoti aplinkos kintamuosius į „Docker“ konteinerį

How Pass Environment Variables Docker Container



„Docker“ yra atvirojo kodo programa, vykdanti serverio programas naudojant konteinerius, o ne virtualias mašinas. „Docker“ yra kūrimo ir prieglobos konfigūracija, kuri naudoja mažiau išteklių, todėl nenuostabu, kad ji šluoja plėtros pasaulį. „Docker“ aplinkos kintamieji yra reikšmingi šiai procedūrai, nes juose saugomi duomenys, unikalūs kiekvienai vartotojo paskyrai, pasiekiančiai programinę įrangą.

Naudodami bet kurią šiuolaikinę „JavaScript“ sistemą kurdami vienos programos sudėtinį rodinį, galite pastebėti, kad konfigūracijos nustatymai skiriasi priklausomai nuo to, kur bus vykdomas sudėtinis rodinys. Pavyzdžiui, pagrindinis jūsų API URL gali skirtis priklausomai nuo to, ar bandote, ar skelbiate programą. Aplinkos kintamuosius dažniausiai naudoja kūrėjai, kad išspręstų šią problemą, nes kodas veikia užpakalinėje sistemoje, paprastai ten naudojami aplinkos kintamieji.







Kurdami vaizdą mums gali tekti perduoti aplinkos informaciją veikiančiam konteineriui. Norėdami tai padaryti, naudojame ENV ir ARG komandas. ARG komanda sukuria kintamąjį, kurį galima pateikti kūrimo proceso metu. Kai jis bus apibrėžtas „Dockerfile“, galite naudoti parametrą „build-arg“, kad pateiktumėte jį vaizdo kūrėjui. „Dockerfile“ galime turėti daugybę ARG instrukcijų. „Dockerfile“ komanda ARG yra vienintelė, kuri gali pasirodyti prieš nurodymą FROM.



Tačiau ENV instrukcija nustato aplinkos kintamąjį, o tai savo ruožtu nurodo aplinką, pagal kurią bus pateiktos statybos instrukcijos. ENV instrukcija pasiekiama statybos proceso metu, taip pat kai konteineris paleidžiamas su „env“ vėliava. Tačiau kurdami vaizdą negalime perduoti ENV instrukcijos. ARG direktyvos trūkumas yra tas, kad ji negali išlikti po to, kai vaizdas sukuriamas. Kurdami vaizdą norime perduoti aplinkos duomenis, mes tiesiog naudosime ir ENV, ir ARG. Šiame vadove mes išmokysime jus, kaip perduoti aplinkos kintamąjį į doko konteinerį.



Būtinos sąlygos

Norėdami aplinkos kintamuosius perduoti „Docker“ konteineriui, turite įdiegti „Ubuntu 20.04 Linux“ sistemą. Taip pat įsitikinkite, kad savo sistemoje įdiegėte naujausią „Docker“ versiją. Jei jo nėra sistemoje, galite ją įdiegti naudodami žemiau nurodytą komandą.





$ sudo apt įdiegti docker.io

Visoje šioje pamokoje mes naudojome „Sudo“ raktinį žodį, o tai reiškia, kad turite turėti sudo privilegijas, kad galėtumėte paleisti šį straipsnį.



Aplinkos kintamųjų perdavimo metodas

Norėdami aplinkos kintamuosius perduoti „Docker“ konteineriui, turite atidaryti komandų eilutės terminalą naudodami spartųjį klavišą „Ctrl“+„Alt“+T arba ieškodami jo programos meniu naudodami jo paieškos juostą. Dabar atlikite toliau pateiktus veiksmus:

1 žingsnis: ištraukite vaizdą
Šiame vadove naudosime mažą (5 MB) „Linux“ vaizdą „Alpine“. Norėdami pradėti, atsisiųskite vaizdą vietoje naudodami šią pridėtą komandą:

$ sudo dokas traukia alpine: 3

Išvestis rodo sėkmingą vaizdo ištraukimą.

2 žingsnis: aplinkos kintamųjų perdavimas
Naudodami vėliavą –env, paleisdami „Docker“ konteinerį, į komandų eilutę galime įvesti aplinkos kintamuosius kaip raktų ir verčių poras. Naudokime šią pridėtą komandą kaip iliustraciją:

$ sudo doko paleidimas --env KINTAMAS1 = foobar alpine: 3

Šiai komandai nebus konkrečios išvesties.

3 žingsnis: atspindėkite aplinkos kintamuosius
Norėdami atspindėti aplinkos kintamuosius, naudokite šią pridėtą komandą kartu su raktiniu žodžiu export.

$ export KINTAMAS2 = foobar2

Šiai komandai nebus konkrečios išvesties.

4 veiksmas: nurodykite aplinkos kintamuosius
Dabar, nenurodydami aplinkos kintamojo vertės, apibrėžkime aplinkos kintamąjį naudodami žemiau pateiktą komandą terminale:

$ sudo docker run --env KINTAMASIS 2 alpine: 3 env

Išvestyje galite matyti, kad aplinkos kintamasis sėkmingai perduotas doko talpyklai.

Išvada

Šiame straipsnyje mes svarstėme aplinkos kintamųjų sąvoką ir svarbą „Docker“. Be to, mes jums pateikėme išsamų vadovą, kaip aplinkos kintamąjį perduoti doko konteineriui. Tikiuosi, kad jums nekils problemų perduodant aplinkos kintamąjį į doko konteinerį.