如何將環境變數傳遞給 Docker 容器?
要將環境變數傳遞給容器,我們首先必須設定它。
假設我們要為資料庫使用者設定變數,並且我們計劃將該變數用於不同的容器。我們可以設定一個名為 DB_USER 的變數,它適用於使用任何型別資料庫的任何容器。假設 DB_USER 的值為 TechRepublic。要設定該變數,我們將發出以下命令:
export DB_USER=TechRepublic
要驗證變數是否已設定,請發出以下命令:
echo $DB_USER
您應該會在終端中看到 TechRepublic。就是這樣,您已經設定了變數。讓我們更進一步(為了示例),並將密碼設定為環境變數。您不會在生產中執行此操作,但這是說明如何執行此操作的好方法。
如何將變數傳遞給容器
現在您瞭解了環境變數的工作原理,您可以瞭解如何輕鬆地將它們傳遞給您的容器。首先,我將演示如何從 docker 命令列執行此操作,然後使用 .env 檔案。
與在 Linux 中使用環境變數不同,您不能在主機上設定它們,然後以與在主機系統中相同的方式將這些設定的變數傳遞給容器。換句話說,例如:
docker run --name postgresql -e $DB_PWORD -e $DB_USER -d postgres
如果您嘗試這樣部署容器,它將執行但立即退出。為什麼?因為與 Linux 系統不同,您幾乎可以根據自己的喜好定義環境變數,容器映像需要某些變數。例如,PostgreSQL 資料庫不能使用 DB_PWORD 或 DB_USER,因為它需要 POSTGRES_PASSWORD 和 POSTGRES_USER。為此,您可以使用以下命令在 Linux 主機上設定這些環境變數:
export POSTGRES_PASSWORD=t3chr3public export POSTGRES_USER=TechRepublic |
好的,現在我們可以執行相同的命令:
docker run --name postgresql -e POSTGRES_PASSWORD -e POSTGRES_USER -d postgres
該命令成功執行,容器將保持執行。
如何使用 .env 檔案傳遞變數
如上所述傳遞環境變數的問題之一是它們存在於記憶體中(直到您使用unset命令取消設定它們)。為了避免這種情況,我們使用環境變數檔案。
讓我們堅持使用我們上面使用的相同變數。使用以下命令建立一個新的 .env 檔案:
nano .env
加入以下內容:
POSTGRES_PASSWORD=t3chr3public POSTGRES_USER=TechRepublic |
現在可以執行:
docker run --name postgresql --env-file .env -d postgres
相關文章
- 如何檢視Docker容器環境變數,如何向容器傳遞環境變數Docker變數
- docker 修改執行容器環境變數,如何修改容器中的環境變數env使長期有效Docker變數
- 禁止 SSH 傳遞 locale 環境變數變數
- 從零開始寫 Docker(十五)---實現 mydocker run -e 支援環境變數傳遞Docker變數
- kubernetes容器編排之定義環境變數以及通過downwardapi把pod資訊作為環境變數傳入容器內變數API
- 什麼是環境變數?Python中如何設定環境變數?變數Python
- win10 如何讓環境變數生效_windows10如何設定環境變數Win10變數Windows
- 【pytest】使用parametrize將引數化變數傳遞到fixture變數
- docker(podman)容器設定中文環境Docker
- mac如何配置python環境變數MacPython變數
- D14 kubernetes 容器服務質量和容器環境變數變數
- GBASEDBTSERVER 環境變數7GBASEDBTSHMBASE 環境變數 (UNIX™)Server變數
- 簡述SHELL全域性環境變數與局變環境變數變數
- Vue 中,如何將函式作為 props 傳遞給元件Vue函式元件
- 如何管理你的 Linux 環境變數Linux變數
- win10如何配置環境變數?Win10變數
- 在Linux中,什麼是環境變數?如何設定和檢視環境變數?Linux變數
- 配置jdk環境變數win10教程_win10jdk環境變數如何配置JDK變數Win10
- 配置環境變數變數
- postman環境變數Postman變數
- 環境變數path變數
- env 環境變數變數
- DOS環境變數變數
- Java 環境變數Java變數
- jdk環境變數JDK變數
- HttpRunner3的變數是如何傳遞的HTTP變數
- 容器環境下如何將NuGet包XML文件新增到SwaggerXMLSwagger
- 向檢視傳遞變數變數
- Hyperledger Fabric 通道配置檔案和容器環境變數詳解變數
- 精讀《如何在 nodejs 使用環境變數》NodeJS變數
- windows配置環境變數Windows變數
- Shell配置環境變數變數
- Flume 配置環境變數變數
- Linux環境變數配置Linux變數
- 環境變數詳解變數
- 配置JDK環境變數JDK變數
- ubuntu JDK 環境變數UbuntuJDK變數
- Linux常用環境變數Linux變數