Docker 是一種輕量級、可移植、自包含的容器化技術,非常適合用于開發、測試和部署應用程序。在使用 Docker 過程中,我們經常需要設置和使用環境變量,本文將介紹 Docker 如何保存和使用環境變量。
在 Docker 中,環境變量可以通過 Dockerfile 或運行時參數進行設置。一般來說,Dockerfile 中使用ENV
命令設置環境變量,例如:
ENV MYSQL_ROOT_PASSWORD=password
ENV MYSQL_DATABASE=mydatabase
上述示例中,我們設置了 MySQL 的 root 用戶密碼和默認數據庫名稱。在運行容器時,可以使用-e
參數來指定環境變量的值,例如:
docker run -e MYSQL_ROOT_PASSWORD=newpassword -e MYSQL_DATABASE=newdb mysql
運行以上命令,會創建一個名為mysql
的容器,并指定了 root 用戶密碼為newpassword
,默認數據庫名稱為newdb
。
在 Docker 中,環境變量可以通過docker inspect
命令來查看,例如:
docker inspect --format='{{range $index, $value := .Config.Env}}{{println $value}}{{end}}' mysql
運行以上命令,會輸出容器中所有的環境變量。如果只想查看某個特定的環境變量,可以使用grep
命令過濾,例如:
docker inspect mysql | grep MYSQL_ROOT_PASSWORD
上述命令會只輸出 MySQL 的 root 用戶密碼的值。
當然,我們也可以將環境變量保存在 Docker Compose 文件中。在 Docker Compose 文件中,可以使用environment
關鍵字來設置環境變量,例如:
version: '3.7'
services:
web:
image: nginx:latest
ports:
- "8080:80"
environment:
MY_VAR: my-value
上述示例中,我們創建了一個 Nginx 容器,并設置了一個名為MY_VAR
的環境變量。在容器中,可以通過$MY_VAR
來引用該環境變量。
總之,Docker 提供了非常便捷的方式來設置和使用環境變量,我們只需要在 Dockerfile、運行時參數或 Docker Compose 文件中進行設置即可。通過docker inspect
命令,我們也能輕松查看到容器中所有的環境變量。