Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker kubernetes-使用同一pod上其他容器的端口设置环境变量_Docker_Kubernetes_Environment Variables_Yaml - Fatal编程技术网

Docker kubernetes-使用同一pod上其他容器的端口设置环境变量

Docker kubernetes-使用同一pod上其他容器的端口设置环境变量,docker,kubernetes,environment-variables,yaml,Docker,Kubernetes,Environment Variables,Yaml,我想以编程方式与同一pod中的容器通信 因此,我决定将辅助容器(本例中为bar1容器和bar2容器)的端口设置为主容器(即foo容器)的环境变量 但是,我无法确定如何传递.yaml文件中用于部署配置的辅助端口的暴露端口,这些端口可以隐式地 apiVersion:apps/v1#对于1.9.0之前的版本,请使用apps/v1beta2 种类:部署 元数据: 名称:测试部署 规格: 副本:1份 模板: 元数据: 标签: 应用程序:web 层:前端 规格: 容器: #只有容器暴露在吊舱外 -名称:fo

我想以编程方式与同一pod中的容器通信

因此,我决定将辅助容器(本例中为bar1容器和bar2容器)的端口设置为主容器(即foo容器)的环境变量

但是,我无法确定如何传递.yaml文件中用于部署配置的辅助端口的暴露端口,这些端口可以隐式地

apiVersion:apps/v1#对于1.9.0之前的版本,请使用apps/v1beta2
种类:部署
元数据:
名称:测试部署
规格:
副本:1份
模板:
元数据:
标签:
应用程序:web
层:前端
规格:
容器:
#只有容器暴露在吊舱外
-名称:foo容器
图片:富
环境:
-名称:BAR_1_端口
#如何在这里隐式获取端口???
价值:XXXX
-名称:BAR_2_端口
#如何在这里隐式获取端口???
价值:XXXX
端口:
-名称:https
集装箱港口:443
-名称:http
集装箱港口:80
#分包商1
-名称:bar1容器
图片:bar1
#分包商2
-名称:bar2容器
图片:bar2
我想知道是否有一种方法可以使用像
${some variable or so here}
这样的端口,而不是
5300
80
9000
或从容器中暴露的任何端口


注意:我故意没有在上面的yaml配置中指定辅助容器的
端口
容器端口
值,因为它们不会暴露在pod之外。

您在这里混合容器、pod和服务。如果在同一个pod中有多个容器,要在它们之间通信,根本不需要服务,还需要将其指向主机名,因为它们共享相同的网络命名空间。您只需在特定服务正在侦听的端口上连接到
localhost
。例如,您可以让nginx container(监听80)通过
localhost:9000

连接到php-fpm的第二个containers服务,感谢
localhost
这一点,我们将为其编辑问题。但是,从您的回答中,我是否应该推断出
php fpm
的端口
9000
仍然不能隐式设置为环境变量?当您将容器组合到pod中时,您提前知道它们将如何运行(它们将使用哪些端口),因此如果您的服务需要通过env var知道这一点,您应该按照定义在其上运行的方式对其进行硬编码