网站设为首页代码,东营网站seo服务,深圳网站建设大概多少钱,h5免费制作平台企业秀docker下载安装
参考#xff1a;docker安装、卸载、配置、镜像 如果是低版本的额ubuntu#xff0c;比如ubuntu16.04.7 LTS#xff0c;为了加快下载速度#xff0c;参考#xff1a;Ubuntu16.04LTS安装Docker。
docker安装dnsmasq
下载dnsmasq镜像
首先镜像我们可以选择…docker下载安装
参考docker安装、卸载、配置、镜像 如果是低版本的额ubuntu比如ubuntu16.04.7 LTS为了加快下载速度参考Ubuntu16.04LTS安装Docker。
docker安装dnsmasq
下载dnsmasq镜像
首先镜像我们可以选择带web页面的也可选择不带的这里选择带web也免的方便不懂技术的人配置。
docker pull jpillora/dnsmasq提前创建docker容器【dnsmasq】的外部挂载文件避免频繁进入容器内部
$sudo vim /opt/dnsmasq.conf配置dnsmasq
# 解析日志
log-queries
no-resolv
# DNS解析服务器地址
server114.114.114.114
server8.8.8.8
server8.8.4.4
# 定义自己的主机与ip映射多个配置多个这里是示例四个
address/gitlab.congco.com/192.168.9.151
address/db.keeep.com/192.168.9.100
address/tbase.keeep.com/192.168.9.123
address/keeep.com/192.168.9.123 # 解析*.keeep.com解决53端口占用问题
在启动dnsmasq容器之前我们需要先检查一下53端口有没有被占用
lsof -i:53之后大概会有三种情况
提示被systemd-resolved服务占用解决办法
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved提示被系统自带的dnsmasq占用,解决办法
vim /etc/NetworkManager/NetworkManager.conf注释dnsdnsmasq
#dnsdnsmasq然后保存最后重启network-manager即可sudo restart network-manager无占用直接运行
运行dnsmasq容器
docker run \--name dnsmasq \-d \-p 53:53/udp \-p 8080:8080 \-v /opt/dnsmasq.conf:/etc/dnsmasq.conf \--log-opt max-size100m \-e HTTP_USERadmin \-e HTTP_PASSadmin \--restart always \jpillora/dnsmasq其中HTTP_USER和HTTP_PASS代表之后登录dns的web管理页面需要用到的账号密码可自定义。
8080端口代表web的访问地址端口可自定义前边的8080。不带换行的命令
docker run --name dnsmasq -d -p 53:53/udp -p 8080:8080 -v /dnsmasq.conf:/etc/dnsmasq.conf --log-opt max-size100m -e HTTP_USERadmin -e HTTP_PASS123456 --restart always jpillora/dnsmasqweb管理页面
输入IP 端口即可打开页面比如10.109.2.8:8080这个IP就是装有dnsmasq的主机地址端口就是前边启动dnsmasq容器所映射的web端口。
测试
之后其他的主机或者移动设备都可以将本地的dns配置成刚才安装dnsmasq的主机地址了 比如
Linux
vim /etc/resolv.conf
nameserver 127.0.0.1 #必填
nameserver 172.17.0.7 #必填[dns所在的本机主要网卡]windows macOS 移动设备 有的移动设备叫dns有的叫域名1 域名2。 注意上边的截图都是在网上截图的所以看起来配置的dns地址不太一样不影响只需要记住DNS地址必须是安装dnsmasq服务器的IP
扩展-配置docker的DNS
当然如果我们没有其他主机或者设备那么我们可以直接用dokcer容器来测试容器其实也是一个完整独立的主机。
sudo vim /etc/docker/daemon.json{dns:[dns服务所在的ip地址]
}重启docker
sudo systemctl restart docker进入启动中的容器内部随便一个容器即可
docker exec -it [容器名称] bash #不同系统不同容器可能进入命令不一样ping staticmed.keeep.com #上边配置的IP映射的域名能ping通即表示成功。