docker如何为链接IP创建别名
运行docker compose时,所有容器的网络别名与网络中运行的其他容器的ip相同。 这些别名是如何创建的 我需要在Kubernetes集群内的nginx容器中重新创建一个别名,因为nginx conf不允许环境变量,我从那里将代理请求反向到另一个容器。 我通常会编辑/etc/hosts文件,但由于docker compose没有编辑,我想知道别名是如何创建的,我是否可以在kubernetes集群中以相同的方式进行编辑。如 链接服务的容器可以通过与别名相同的主机名访问,如果未指定别名,则可以通过与服务名称相同的主机名访问 这意味着如果您有这样的docker compose文件:docker如何为链接IP创建别名,docker,kubernetes,ip,docker-compose,alias,Docker,Kubernetes,Ip,Docker Compose,Alias,运行docker compose时,所有容器的网络别名与网络中运行的其他容器的ip相同。 这些别名是如何创建的 我需要在Kubernetes集群内的nginx容器中重新创建一个别名,因为nginx conf不允许环境变量,我从那里将代理请求反向到另一个容器。 我通常会编辑/etc/hosts文件,但由于docker compose没有编辑,我想知道别名是如何创建的,我是否可以在kubernetes集群中以相同的方式进行编辑。如 链接服务的容器可以通过与别名相同的主机名访问,如果未指定别名,则可以
version: '3'
services:
nginx:
links:
- app1
...
app1:
...
然后nginx可以通过
app1
访问另一个容器。在kubernetes集群中,默认情况下部署了DNS服务器服务
kubectl get svc
应显示DNS服务IP地址
您也可以在容器/etc/resolv.conf
文件中找到DNS服务器IP地址
有关更多信息,请参阅
您可以使用主机别名在容器的/etc/hosts
文件中指定其他条目。看
剪报:
你误解了我的问题。我问docker compose是如何在后面使用别名的。我的本地docker compose网络工作正常,但它有点神奇,很难在kubernetes上复制…谢谢,看起来就像我需要做的,我们也可以在部署规范中设置主机别名。现在想知道如何用到相关容器服务ip的链接替换硬编码ip。具体地说,我希望我的nginx容器从nginx.conf访问php fpm服务(名称stg phpfpm svc),作为
php
,以进行反向代理。也许我需要做一些其他的事情,比如在服务上进行dnsalising…您应该能够使用服务发现。这就是k8s集群中不同服务的通信方式。
apiVersion: v1
kind: Pod
metadata:
name: hostaliases-pod
spec:
restartPolicy: Never
hostAliases:
- ip: "127.0.0.1"
hostnames:
- "foo.local"
- "bar.local"
- ip: "10.1.2.3"
hostnames:
- "foo.remote"
- "bar.remote"