说明:原创文章,转载请注明出处 https://qiedd.com/

一、安装docker

环境 Ubuntu 18.04 LTS

#下载docker安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
#选择阿里云源并安装
sh get-docker.sh --mirror Aliyun

#使用镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你的阿里云镜像源"]
}
EOF

#重启docker
systemctl daemon-reload
systemctl restart docker

二、安装Pihole和Adguard

安装Pihole

#ens18请换成你的网卡,开启网卡混杂模式
ip link set ens18 promisc on

#创建macvlan,若你的网关为192.168.123.1,则换成192.168.123.0和192.168.123.1,网卡若是为ens18也需要换
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=ens18 macnet

#下载并运行docker,dns可以换成你的上级网关,也可以自定义
docker run -d --name pihole --network macnet --ip 192.168.1.250 -e TZ="Asia/Shanghai" -v /mnt/pihole/pihole/:/etc/pihole/ -v /mnt/pihole/dnsmasq.d/:/etc/dnsmasq.d/ --dns=127.0.0.1 --dns=192.168.1.1 --restart always pihole/pihole:latest

#修改Pihole默认密码
docker exec -it pihole pihole -a -p

随后访问http://192.168.1.250/admin即可(可能需要等待一段时间才可访问,别急

安装Adguard

因为之前已经开启了网卡混杂模式和创建了macvlan,所以不用再来一遍

#下载adguard镜像
docker pull adguard/adguardhome

#运行adguard
docker run --name adguardhome -d --network macnet --ip 192.168.1.251 --restart always adguard/adguardhome

进入http://192.168.1.251:3000开始安装吧

后续配置

如果你在Ubuntu中ping容器你会发现是ping不通的
以下是解决方法

这里我们需要用到NetworkManager

请先确认已经安装NetworkManager

systemctl status NetworkManager

#若未安装
apt install network-manager

#然后启用NetworkManager
systemctl enable NetworkManager

#如果默认使用 systemd-resolved ,则禁用
systemctl stop systemd-resolved
systemctl disable systemd-resolved

#重启Ubuntu
reboot
#修改/etc/network/interfaces
vim /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto macvlan
iface macvlan inet static
address 192.168.1.4
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
pre-up ip link add macvlan link ens18 type macvlan mode bridge
post-down ip link del macvlan link ens18 type macvlan mode bridge

按照上面的例子修改就行,不要照抄,macvlan可以是和ens18的IP地址不同,重启Ubuntu后你就发现可以ping通容器了!

若宿主机Ubuntu无法解析域名,请检查/etc/resolv.conf,然后设置

# Generated by NetworkManager
nameserver 192.168.1.1

三、Openwrt中DHCP通告DNS

网络->接口->lan,下方DHCP服务器->高级设置->DHCP选项
填入6,192.168.1.250,192.168.123.251,点击+号,保存&应用

建议直接重启路由器

参考资料

https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=430903

https://www.right.com.cn/forum/thread-858344-1-1.html

分类: DockerLinux

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据