云计算核心技术Docker教程:Docker容器环境变量
当您链接容器时,Docker 会创建多个环境变量Docker 会根据——link参数在目标容器中自动创建环境变量它还从源容器中公开源自 Docker 的所有环境变量
1.ENV在源容器的Dockerfile命令
2.—e,——env和——env—file在选择docker run 命令时,源容器开始
这些环境变量支持从目标容器内以编程方式发现与源容器相关的信息。
Docker_NAME为——link参数中列出的每个目标容器设置一个环境变量例如,如果一个web名为dbvia的新容器 链接到一个名为via的数据库容器——link db:webdb,则 Docker 会WEBDB_NAME=/web/webdb在该web容器中创建一个变量
Docker 还为源容器公开的每个端口定义了一组环境变量。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。每个变量都有一个唯一的前缀,格式如下:
_PORT__
此前缀中的组件是:
参数中指定的别名——link
暴露的数字
a是 TCP 或 UDP
Docker 使用这种前缀格式来定义三个不同的环境变量:
1.该prefix_ADDR变量包含来自 URL 的 IP 地址,例如WEBDB_PORT_5432_TCP_ADDR=172.17.0.82。
2.例如,该prefix_PORT变量仅包含来自 URL 的端口号WEBDB_PORT_5432_TCP_PORT=5432。Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache0协议开源。接下来为大家演示一下docker部署wordpress博客系统。。
3.例如,该prefix_PROTO变量仅包含来自 URL 的协议WEBDB_PORT_5432_TCP_PROTO=tcp。
如果容器公开多个端口,则为每个端口定义一个环境变量集这意味着,例如,如果一个容器公开 4 个端口,Docker 会创建 12 个环境变量,每个端口 3 个
此外,Docker 创建了一个名为_PORT. 此变量包含源容器的第一个公开端口的 URL第一个端口定义为具有最低编号的公开端口例如,考虑WEBDB_PORT=tcp://172.17.0.82:5432变量如果该端口同时用于 tcp 和 udp,则指定 tcp 之一
最后,Docker 还将源容器中每个源自 Docker 的环境变量公开为目标中的环境变量对于每个变量,Docker_ENV_在目标容器中创建一个变量该变量的值设置为 Docker 在启动源容器时使用的值
回到我们的数据库示例,您可以运行env 命令来列出指定容器的环境变量。
$ docker run ——rm ——name web2 ——link db:db training/webapp env
可以看到 Docker 已经创建了一系列环境变量,其中db包含有关源容器的有用信息每个变量都以 为前缀 DB_,它是根据alias您在上面指定的内容填充的如果alias 是db1,则变量将以 为前缀DB1_您可以使用这些环境变量来配置您的应用程序以连接到db容器上的数据库连接是安全且私密的,只有链接的web容器才能与容器通信db
。郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。