比如我內網有個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
.168.3.54 jenkins.ean.com test1.ean.com
.168.3.54 redis.ean.com
#追加上我們剛才配置的兩個文件
#vi /etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasqhosts
#退出容器 & 重啟
exit
docker restart dns-server
第4步:搭建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;
}
}
補充知識:docker pull 私有倉庫 鏡像
1、docker pull 私有倉庫報錯
http server gave http response to https clinet
由于docker版本不同,可嘗試下面兩種方法:(在客戶端配置)
(1)、方法一:通過配置/etc/docekr/daemon.json
vim /etc/docker/daemon.json
{
"insecure-registry": ["172.16.12.196:5000"](倉庫地址)
}
(2)、方法二:通過配置/etc/sysconfig/docker
vim /etc/sysconfig/docker
INSECURE_REGISTRY = "--insecure-registry 172.16.12.196:5000"
以上這篇docker內網搭建dns使用域名訪問替代ip:port的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。