docker内网搭建dns使用域名访问替代ip:port方式
比如我内网有个jenkins,我如果要访问它我得牢牢记住它的ip和端口,一个服务我还能记住,多个的话我可能需要一个方便记忆的域名记录一些内网服务
第1步: 准备好docker环境
第2步:下载好镜像
docker pull andyshinn/dnsmasq:2.75
第3步:运行dnsmasq
#后台启动
docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq:2.75
#进入容器
docker exec -it dns-server /bin/sh
#创建代理文件-添加外部dns
vi /etc/resolv.dnsmasq
nameserver 114.114.114.114
nameserver 8.8.8.8
#新建本地解析规则配置-添加本地解析规则
#注意:这里的ip要填docker所在主机的ip
vi /etc/dnsmasqhosts
192.168.3.54 jenkins.ean.com test1.ean.com
192.168.3.54 redis.ean.com
#追加上我们刚才配置的两个文件
#vi /etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasqhosts
#退出容器 & 重启
exit
docker restart dns-server
第3步:搭建nginx
一定要在3.54上安装nginx做域名反向代理
server{
listen 80;
server_name jenkins.ean.com;
proxy_set_header Host $host;
location /{
proxy_pass http://192.168.3.54:8060;
}
}