云计算核心技术Docker教程:Docker 容器环境变量
当您链接容器时,Docker 会创建多个环境变量。Docker 会根据--link参数在目标容器中自动创建环境变量。它还从源容器中公开源自 Docker 的所有环境变量。这些包括来自以下方面的变量
1.ENV在源容器的Dockerfile命令
2.-e,--env和--env-file在选择docker run 命令时,源容器开始
这些环境变量支持从目标容器内以编程方式发现与源容器相关的信息。
Docker_NAME为--link参数中列出的每个目标容器设置一个环境变量。例如,如果一个eb名为dbvia的新容器 链接到一个名为via的数据库容器--link db:ebdb,则 Docker 会WEBDB_NAME=/eb/ebdb在该eb容器中创建一个变量。
Docker 还为源容器公开的每个端口定义了一组环境变量。每个变量都有一个唯一的前缀,格式如下
_PORT__
此前缀中的组件是
参数中指定的别名--link(例如,ebdb)
暴露的数字
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。“第一个”端口定义为具有最低编号的公开端口。例如,考虑WEBDB_PORT=tcp://172.17.0.82:5432变量。如果该端口用于 tcp 和 udp,则指定 tcp 之一。
,Docker 还将源容器中每个源自 Docker 的环境变量公开为目标中的环境变量。对于每个变量,Docker_ENV_在目标容器中创建一个变量。该变量的值设置为 Docker 在启动源容器时使用的值。
回到我们的数据库示例,您可以运行env 命令来列出指定容器的环境变量。
$ docker run --rm --name eb2 --link db:db training/ebapp env
可以看到 Docker 已经创建了一系列环境变量,其中db包含有关源容器的有用信息。每个变量都以 为前缀 DB_,它是根据alias您在上面指定的内容填充的。如果alias 是db1,则变量将以 为前缀DB1_。您可以使用这些环境变量来配置您的应用程序以连接到db容器上的数据库。连接是安全且私密的;只有链接的eb容器才能与容器通信db。
人工智能培训
- 真正能和人交流的机器人什么时候实现
- 国产机器人成功完成首例远程冠脉介入手术
- 人工智能与第四次工业革命
- 未来30年的AI和物联网
- 新三板创新层公司东方水利新增专利授权:“一
- 发展人工智能是让人和机器更好地合作
- 新春贺喜! 经开区持续推进工业互联网平台建设
- 以工业机器人为桥 传统企业如何趟过智造这条河
- 山立滤芯SAGL-1HH SAGL-2HH
- 2015国际智能星创师大赛火热报名中!
- 未来机器人会咋看人类?递归神经网络之父-像蚂
- 成都新川人工智能创新中心二期主体结构封顶
- 斯坦德机器人完成数亿元人民币C轮融资,小米产
- 到2020年,智能手机将拥有十项AI功能,有些可能
- 寻找AI机器人的增长“跳板”:老龄化为支点的产
- 力升高科耐高温消防机器人参加某支队性能测试