本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
4km3/dnsmasq 是一个基于 Alpine Linux 的轻量级 dnsmasq 容器镜像。dnsmasq 是一款集 DNS 缓存、DNS 转发、DHCP 服务器、TFTP 服务器于一体的轻量级网络服务工具,广泛用于小型网络环境。该镜像结合 Alpine Linux 的精简特性,实现了低资源占用、快速启动和易于部署的网络服务容器,适用于需要轻量级 DNS/DHCP 服务的场景。
| 功能/特性 | 说明 |
|---|---|
| DNS 服务 | 支持 UDP/TCP 53 端口,提供 DNS 缓存、转发、自定义域名解析(hosts 映射)。 |
| DHCP 服务 | 支持 IPv4 DHCP 地址池配置、租期管理、静态 IP 绑定(MAC-IP 映射)。 |
| 轻量级基础 | 基于 Alpine Linux,镜像体积 < 10MB,运行时内存占用通常 < 5MB。 |
| 灵活配置 | 支持通过配置文件(dnsmasq.conf)或命令行参数自定义服务行为。 |
| 网络兼容性 | 支持 Docker 桥接网络、host 网络等模式,适配不同网络场景。 |
docker run -d \ --name dnsmasq \ --restart unless-stopped \ -p 53:53/udp \ # DNS 服务端口(UDP) -p 53:53/tcp \ # DNS 服务端口(TCP,用于长查询) -v /path/to/dnsmasq.conf:/etc/dnsmasq.conf \ # 挂载自定义配置文件 -v /path/to/hosts:/etc/hosts \ # 可选:挂载自定义 hosts 文件(静态域名映射) 4km3/dnsmasq
DHCP 服务依赖底层网络栈,建议使用 --net=host 模式以确保正确广播和地址分配:
docker run -d \ --name dnsmasq \ --restart unless-stopped \ --net=host \ # 使用主机网络,避免端口映射冲突 --cap-add=NET_ADMIN \ # 授予网络管理权限(DHCP 服务必需) -v /path/to/dnsmasq.conf:/etc/dnsmasq.conf \ -v /path/to/dhcp-hosts:/etc/dnsmasq.d/dhcp-hosts \ # 静态 IP 绑定配置 4km3/dnsmasq
创建 docker-compose.yml:
version: '3' services: dnsmasq: image: 4km3/dnsmasq container_name: dnsmasq restart: unless-stopped network_mode: host # 如需 DHCP 服务,建议使用 host 网络 cap_add: - NET_ADMIN # DHCP 服务必需 volumes: - ./dnsmasq.conf:/etc/dnsmasq.conf:ro # 只读挂载配置文件 - ./dnsmasq.d:/etc/dnsmasq.d:ro # 可选:额外配置片段目录 - ./hosts:/etc/hosts:ro # 可选:自定义 hosts 文件 # 如需仅启用 DNS 服务(非 host 网络),替换 network_mode 和 ports: # ports: # - "53:53/udp" # - "53:53/tcp"
dnsmasq 的核心配置通过 /etc/dnsmasq.conf 文件定义,用户需通过数据卷挂载自定义配置文件。默认情况下,镜像可能包含基础配置(如默认 DNS 转发至公共 DNS),但建议用户根据需求自定义。
/etc/dnsmasq.conf(容器内路径,需通过 -v 挂载宿主机文件)/etc/dnsmasq.d/(容器内目录,可挂载宿主机目录并存放 .conf 后缀文件,自动加载)以下为 dnsmasq.conf 关键配置项示例,更多参数参考 dnsmasq 官方文档:
# 禁用 resolv.conf 自动加载(避免容器内 DNS 干扰) no-resolv # 上游 DNS 服务器(按优先级排序) server=8.8.8.8 # Google DNS server=8.8.4.4 # DNS 缓存大小(最多缓存 1000 条记录) cache-size=1000 # 自定义域名解析(等价于 hosts 文件) address=/local.dev/192.168.1.100 # 将 local.dev 解析到 192.168.1.100
# 启用 DHCP 服务 dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h # IP 范围、子网掩码、租期 dhcp-option=3,192.168.1.1 # 网关地址 dhcp-option=6,8.8.8.8,8.8.4.4 # DNS 服务器地址(分配给客户端) # 静态 IP 绑定(MAC 地址 -> IP) dhcp-host=aa:bb:cc:dd:ee:ff,192.168.1.50,my-device # MAC 为 aa:bb:cc:... 的设备固定分配 192.168.1.50,主机名 my-device
# 启用 TFTP 服务 enable-tftp tftp-root=/tftpboot # TFTP 根目录(需挂载宿主机目录至容器 /tftpboot)
--net=host 模式;仅需 DNS 服务时可使用桥接网络并映射 53 端口。NET_ADMIN 权限(--cap-add=NET_ADMIN),否则无法监听 DHCP 端口(67/udp)。root)有读取权限,建议宿主机文件权限设为 644。docker logs dnsmasq 查看;如需持久化日志,可配置 log-facility=/var/log/dnsmasq.log 并挂载日志目录。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429