Ako odovzdať premenné prostredia do kontajnera Docker

How Pass Environment Variables Docker Container



Docker je program s otvoreným zdrojovým kódom, ktorý spúšťa serverové aplikácie pomocou kontajnerov a nie virtuálnych počítačov. Docker je konfigurácia vývoja a hostingu, ktorá využíva menej zdrojov, a preto nie je prekvapením, že obmýva vývojový svet. Premenné prostredia Dockeru sú pre tento postup významné, pretože ukladajú údaje, ktoré sú jedinečné pre každé používateľské konto, ktoré pristupuje k softvéru.

Použitím akéhokoľvek moderného rámca JavaScript na vytvorenie kontajnera pre jednu aplikáciu môžete zistiť, že konfiguračné nastavenia sa líšia v závislosti od toho, kde sa kontajner spustí. Základná adresa URL vášho rozhrania API sa napríklad môže líšiť v závislosti od toho, či aplikáciu testujete alebo publikujete. Premenné prostredia vývojári bežne používajú na riešenie tohto problému, pretože kód pracuje na backende, tam sa zvyčajne používajú premenné prostredia.







Počas vytvárania obrazu možno budeme musieť odovzdať informácie o prostredí operačnému kontajneru. Na tento účel používame príkazy ENV aj ARG. Príkaz ARG vytvorí premennú, ktorú je možné poskytnúť počas procesu zostavovania. Akonáhle je definovaný v súbore Docker, môžete ho použiť parametrom —build-arg na poskytnutie nástroju na tvorbu obrázkov. V súbore Dockerfile môžeme mať množstvo pokynov pre ARG. V súbore Dockerfile je príkaz ARG jediný, ktorý môže byť pred príkazom FROM.



Inštrukcia ENV však nastavuje premennú prostredia, ktorá zase určuje prostredie pre nasledujúce stavebné pokyny. Inštrukcia ENV je prístupná počas procesu výstavby, ako aj pri spustení kontajnera s príznakom —env. Pri konštrukcii obrazu však nemôžeme prejsť inštrukciou ENV. Smernica ARG má nevýhodu v tom, že po vytvorení obrazu nemôže pretrvávať. Aby sme pri vytváraní obrázka odovzdali údaje prostredia vložené, použijeme iba ENV a ARG. V tejto príručke vás naučíme, ako odovzdať premennú prostredia do docker kontajnera.



Predpoklady

Na prenos premenných prostredia do kontajnera ukotviteľného panela musíte mať nainštalovaný systém Linux Ubuntu 20.04. Nezabudnite si do systému nainštalovať aj aktuálnu verziu Dockeru. V prípade, že sa v systéme nenachádza, môžete jeho inštaláciu vykonať pomocou nižšie uvedeného príkazu.





$ sudo apt nainštalovať docker.io

V celom tomto návode sme použili kľúčové slovo Sudo, čo znamená, že na spustenie tohto článku musíte mať oprávnenia sudo.



Metóda odovzdávania premenných prostredia

Ak chcete premenné prostredia odoslať do docker kontajnera, musíte otvoriť terminál príkazového riadka pomocou klávesovej skratky Ctrl+Alt+T alebo ho vyhľadať v ponuke aplikácií pomocou vyhľadávacieho panela. Teraz postupujte podľa nižšie uvedených pokynov:

Krok 1: Vytiahnite obrázok
V tejto príručke budeme používať Alpine, malý (5 MB) obrázok Linuxu. Ak chcete začať, stiahnite si obrázok lokálne pomocou nasledujúceho pripojeného príkazu:

$ sudo docker pull alpine: 3

Výstup ukazuje úspešné vytiahnutie obrázka.

Krok 2: Odovzdanie premenných prostredia
Pomocou príznaku –env môžeme pri spustení nášho kontajnera Docker zadávať premenné prostredia ako páry kľúč-hodnota priamo do príkazového riadka. Na ilustráciu použijeme nasledujúci priložený príkaz:

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

Pre tento príkaz nebude existovať žiadny konkrétny výstup.

Krok 3: Odrážanie premenných prostredia
Na premietnutie premenných prostredia použite nasledujúci exportovaný príkaz spolu s exportom kľúčového slova.

$ export VARIABLE2 = foobar2

Pre tento príkaz nebude existovať žiadny konkrétny výstup.

Krok 4: Zadajte premenné prostredia
Teraz, bez zadávania hodnoty premennej prostredia, definujme premennú prostredia pomocou nižšie uvedeného príkazu v termináli:

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

Na výstupe môžete vidieť, že premenná prostredia bola úspešne odovzdaná do kontajnera ukotviteľného panela.

Záver

V tomto článku sme sa zaoberali konceptom a dôležitosťou premenných prostredia v dockere. Tiež sme vám poskytli podrobného sprievodcu odovzdaním premennej prostredia do kontajnera dockeru. Dúfam, že pri odovzdávaní premennej prostredia do docker kontajnera nebudete mať žiadny problém.