04.环境变量
在将应用程序打包为 docker image 时,可以通过修改环境变量影响应用程序的某些行为。
查看容器设置的环境变量
使用 docker inspect <hash> 查看当前容器设置的环境变量。
在返回的信息中, Config 键 → Env 键中列出了设置的环境变量,示例如下:
cmd
"Config": {
"Hostname": "9ba4920675c5",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"APP_COLOR=pink",
"PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"GPG_KEY=0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D",
"PYTHON_VERSION=3.6.6",
"PYTHON_PIP_VERSION=18.1"
],
"Cmd": null,
"Image": "kodekloud/simple-webapp",
"Volumes": null,
"WorkingDir": "/opt",
"Entrypoint": [
"python",
"app.py"
],
"OnBuild": null,
"Labels": {}
},这里的 APP_COLOR 环境变量设置为了 pink 。
设置环境变量
可以在运行镜像时设置环境变量,使用 -e 参数:
cmd
docker run -e APP_COLOR=blue simple-images在下面的示例中, flask 应用程序将可以读取运行 image 时设置的系统环境变量:
python
import os
from flask import Flask
app = Flask(__name__)
...
...
color = os.environ.get("APP_COLOR")
@app.route("/")
def main():
print(color)
return render_template("hello.html", color=color)
if __name__ == "__main__":
app.run()