栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用容器名称从主机访问Docker容器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用容器名称从主机访问Docker容器

有一个开源应用程序可以解决此问题,称为DNS Proxy Server,这里有一些来自官方存储库的示例

这是一个DNS服务器,用于解析容器的主机名,如果找不到匹配的主机名,则也可以从Internet解析它

启动DNS服务器

$ docker run --hostname dns.mageddo --restart=unless-stopped -p 5380:5380 -v /var/run/docker.sock:/var/run/docker.sock -v /etc/resolv.conf:/etc/resolv.conf defreitas/dns-proxy-server

它将自动设置为您的默认DNS(并在停止时恢复为原始DNS)

创建一些容器进行测试

检查docker-compose文件

$ cat docker-compose.ymlversion: '3'services:  nginx-1:    image: nginx    hostname: nginx-1.docker    network_mode: bridge   linux-1:    image: alpine    hostname: linux-1.docker    command: sh -c 'apk add --update bind-tools && tail -f /dev/null'    network_mode: bridge # that way he can solve others containers names even inside, solve nginx-2, for example

起始容器

$ docker-compose up

解决容器

来自主机

nslookup nginx-1.dockerServer:     13.0.0.5Address:    13.0.0.5#53Non-authoritative answer:Name:   nginx-1.dockerAddress: 13.0.0.6

从另一个容器

$ docker-compose exec linux-1 ping nginx-1.dockerPING nginx-1.docker (13.0.0.6): 56 data bytes64 bytes from 13.0.0.6: seq=0 ttl=64 time=0.034 ms

以及它解决互联网主机名

$ nslookup google.comServer:     13.0.0.5Address:    13.0.0.5#53Non-authoritative answer:Name:   google.comAddress: 216.58.202.78


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/417427.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号