您的位置:首页 >市场 >

云计算核心技术Docker教程:Docker容器环境变量

当您链接容器时,Docker 会创建多个环境变量。Docker 会根据--link参数在目标容器中自动创建环境变量。它还从源容器中公开源自 Docker 的所有环境变量。这些包括来自以下方面的变量:

云计算核心技术Docker教程: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 还为源容器公开的每个端口定义了一组环境变量。每个变量都有一个唯一的前缀,格式如下:

_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。

3.例如,该prefix_PROTO变量仅包含来自 URL 的协议WEBDB_PORT_5432_TCP_PROTO=tcp。

如果容器公开多个端口,则为每个端口定义一个环境变量集。这意味着,例如,如果一个容器公开 4 个端口,Docker 会创建 12 个环境变量,每个端口 3 个。

此外,Docker 创建了一个名为_PORT. 此变量包含源容器的第一个公开端口的 URL。ldquo;第一个rdquo;端口定义为具有最低编号的公开端口。例如,考虑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。

声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。

最新动态
相关文章
北汽与伯特利签署战略合作协议,共同打造协同创新体系
北汽与伯特利签署战略合作
益盟软件,提升股民选股能力
益盟软件,提升股民选股能
从渠道红利到引领创新,20年老国货珀莱雅再掀新风潮
从渠道红利到引领创新,2
抖音放心借好通过吗?做好以下三点大大提升通过率
抖音放心借好通过吗?做好
回首不平凡的2022|北京越野,越战越勇跨入新时代
回首不平凡的2022|北
“新豪华主义”最新重磅车型 ——全新梅赛德斯-奔驰长轴距GLC SUV下线
“新豪华主义”最新重磅车