
flungo/avahiAvahi是实现mDNS/DNS-SD(多播DNS/服务发现)协议的守护进程,用于局域网内无配置的服务发现。本Docker镜像基于Alpine Linux构建,体积小巧且高度可配置,适用于在Docker环境中部署mDNS/DNS-SD服务的各类场景。
avahi-daemon.conf的所有配置选项启动基础Avahi容器的命令:
shelldocker run flungo/avahi
所有avahi-daemon.conf配置选项均通过环境变量设置,命名格式为<SECTION>_<OPTION>(配置段名称大写,选项名称大写且将-替换为_)。可用配置选项如下表:
| 配置段(Section) | 配置项(Option) | 环境变量 |
|---|---|---|
server | host-name | SERVER_HOST_NAME |
server | domain-name | SERVER_DOMAIN_NAME |
server | browse-domains | SERVER_BROWSE_DOMAINS |
server | use-ipv4 | SERVER_USE_IPV4 |
server | use-ipv6 | SERVER_USE_IPV6 |
server | allow-interfaces | SERVER_ALLOW_INTERFACES |
server | deny-interfaces | SERVER_DENY_INTERFACES |
server | check-response-ttl | SERVER_CHECK_RESPONSE_TTL |
server | use-iff-running | SERVER_USE_IFF_RUNNING |
server | enable-dbus | SERVER_ENABLE_DBUS |
server | disallow-other-stacks | SERVER_DISALLOW_OTHER_STACKS |
server | allow-point-to-point | SERVER_ALLOW_POINT_TO_POINT |
server | cache-entries-max | SERVER_CACHE_ENTRIES_MAX |
server | clients-max | SERVER_CLIENTS_MAX |
server | objects-per-client-max | SERVER_OBJECTS_PER_CLIENT_MAX |
server | entries-per-entry-group-max | SERVER_ENTRIES_PER_ENTRY_GROUP_MAX |
server | ratelimit-interval-usec | SERVER_RATELIMIT_INTERVAL_USEC |
server | ratelimit-burst | SERVER_RATELIMIT_BURST |
wide-area | enable-wide-area | WIDE_AREA_ENABLE_WIDE_AREA |
publish | disable-publishing | PUBLISH_DISABLE_PUBLISHING |
publish | disable-user-service-publishing | PUBLISH_DISABLE_USER_SERVICE_PUBLISHING |
publish | add-service-cookie | PUBLISH_ADD_SERVICE_COOKIE |
publish | publish-addresses | PUBLISH_PUBLISH_ADDRESSES |
publish | publish-hinfo | PUBLISH_PUBLISH_HINFO |
publish | publish-workstation | PUBLISH_PUBLISH_WORKSTATION |
publish | publish-domain | PUBLISH_PUBLISH_DOMAIN |
publish | publish-dns-servers | PUBLISH_PUBLISH_DNS_SERVERS |
publish | publish-resolv-conf-dns-servers | PUBLISH_PUBLISH_RESOLV_CONF_DNS_SERVERS |
publish | publish-aaaa-on-ipv4 | PUBLISH_PUBLISH_AAAA_ON_IPV4 |
publish | publish-a-on-ipv6 | PUBLISH_PUBLISH_A_ON_IPV6 |
reflector | enable-reflector | REFLECTOR_ENABLE_REFLECTOR |
reflector | reflect-ipv | REFLECTOR_REFLECT_IPV |
rlimits | rlimit-as | RLIMITS_RLIMIT_AS |
rlimits | rlimit-core | RLIMITS_RLIMIT_CORE |
rlimits | rlimit-data | RLIMITS_RLIMIT_DATA |
rlimits | rlimit-fsize | RLIMITS_RLIMIT_FSIZE |
rlimits | rlimit-nofile | RLIMITS_RLIMIT_NOFILE |
rlimits | rlimit-stack | RLIMITS_RLIMIT_STACK |
rlimits | rlimit-nproc | RLIMITS_RLIMIT_NPROC |
若需使用的配置选项缺失,请反馈或提交PR添加该功能。
要在两个Docker网络(示例中为net1和net2)间反射mDNS广播,需启用反射器(设置REFLECTOR_ENABLE_REFLECTOR=yes):
shell# 创建名为mdns-reflector的容器并连接到net1网络 docker run -d --name=mdns-reflector \ --network net1 \ -e REFLECTOR_ENABLE_REFLECTOR=yes \ flungo/avahi # 将容器连接到net2网络 docker network connect net2 mdns-reflector
如需连接物理网络(如WiFi VLAN),可使用macvlan驱动创建网络。以下示例创建名为physical的macvlan网络,连接到eno1接口(子网10.0.0.0/24,网关10.0.0.1):
bashdocker network create --driver macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.1 --opt parent=eno1 physical
连接VLAN时,在父接口后添加.VLAN ID(如--opt parent=eno1.123表示VLAN 123)。
为避免IP冲突,连接时指定可用IP(假设容器名为avahi,IP 10.0.0.10可用):
bashdocker network connect physical avahi --ip 10.0.0.10
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务