轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
airprint-bridge

drpsychick/airprint-bridge

drpsychick

多架构、环境配置的Docker CUPS/Avahi镜像(定期自动构建),用于将网络中的本地打印机通过AirPrint协议暴露给iOS/macOS设备,支持通过环境变量、Web界面或文件配置打印机。

9 次收藏下载次数: 0状态:社区镜像维护者:drpsychick仓库类型:镜像最近更新:24 天前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

中文简介
下载命令
镜像标签列表与下载命令
使用轩辕镜像,把时间还给真正重要的事。
点击查看

本地打印机AirPrint桥接Docker镜像

![构建状态]([] ![]([***]

镜像概述

主要用途

运行集成CUPS和Avahi(mDNS/Bonjour)服务的容器,将网络中的本地打印机通过AirPrint协议暴露给iOS/macOS设备,实现无线打印功能。

核心功能与特性

  • 多架构支持:定期自动构建,适配多种硬件架构
  • CUPS与Avahi集成:内置CUPS打印服务和Avahi mDNS/Bonjour服务,无需额外配置
  • 环境变量配置:通过环境变量灵活配置CUPS管理员账户、打印机参数等
  • 多种打印机配置方式:支持通过环境变量、Web界面或配置文件添加打印机
  • 可选Google Cloud Print支持:可配置集成Google Cloud Print服务
  • 网络隔离:支持通过macvlan网络赋予容器独立IP,避免端口冲突

环境要求

  • Linux主机:仅支持Linux主机运行(macOS因网络限制暂不支持,详见:https://github.com/docker/for-mac/issues/3447%EF%BC%89
  • 独立IP地址:容器需分配独立IP,避免与主机或其他服务的CUPS/Avahi端口冲突(通常主机已运行CUPS和/或Avahi服务)
  • CUPS驱动:需为打印机准备对应CUPS驱动(暂不支持将Windows共享打印机的驱动作为CUPS"代理"使用)

注意事项

  • Windows共享打印机需允许***访问,或在设备URI中指定用户名密码(格式:smb://user:pass@host/printer)

使用方法

快速体验(仅Linux主机)

macOS不支持此功能(详见:Docker for Mac网络限制)

shell
# 启动临时容器(含Web管理界面)
docker run -d --rm -e CUPS_WEBINTERFACE="yes" -e CUPS_REMOTE_ADMIN="yes" --hostname mycups --name cups-setup drpsychick/airprint-bridge

# 重要:仅当主机名/IP匹配时才能进行管理!(不支持端口转发等)
# 主机名不匹配时CUPS错误:`Request from "172.17.42.1" using invalid Host: field "localhost:6310"`
echo "CUPS管理地址:http://$(docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress }}' cups-setup):631"
# -> 访问上述地址配置打印机

# 导出打印机配置文件(获取设备ID等关键信息)
docker cp cups-setup:/etc/cups/printers.conf ./

环境变量配置

重要:Docker环境变量仅支持单行且无双引号!

环境变量默认值说明
CUPS_ADMIN_USER"admin"CUPS管理员用户名
CUPS_ADMIN_PASSWORD"secr3t"CUPS管理员密码
CUPS_WEBINTERFACE"yes"是否启用Web管理界面
CUPS_SHARE_PRINTERS"yes"是否共享打印机
CUPS_REMOTE_ADMIN"yes"是否允许远程管理
CUPS_ACCESS_LOGLEVEL"config"访问日志级别(可选:all, access, config,详见man cupsd.conf)
CUPS_LOGLEVEL"warn"服务日志级别(可选:error, warn, info, debug, debug2,详见man cupsd.conf)
CUPS_ENV_DEBUG"no"是否启用调试模式(启动脚本调试及CUPS详细日志)
CUPS_IP$(hostname -i)CUPS服务绑定IP(通常无需手动设置)
CUPS_HOSTNAME$(hostname -f)CUPS主机名(用于通过域名访问,如https://cups.domain:631/)
CUPS_SSL_CERT""SSL证书内容(单行,换行符用\n表示)
CUPS_SSL_KEY""SSL密钥内容(单行,换行符用\n表示)
AVAHI_INTERFACES""Avahi监听接口
AVAHI_IPV6"no"是否启用IPv6支持
AVAHI_REFLECTOR"no"是否启用mDNS反射器
AVAHI_REFLECT_IPV"no"是否反射IPv4/IPv6流量

添加打印机

通过环境变量自动配置

设置以CUPS_LPADMIN_PRINTER为前缀的环境变量,容器启动时将自动执行lpadmin命令添加打印机:

shell
# 示例1:添加IPP打印机
CUPS_LPADMIN_PRINTER1=lpadmin -p test -D '测试打印机' -m raw -v ipp://myhost/printer

# 示例2:添加"通用"类型打印机
CUPS_LPADMIN_PRINTER2=lpadmin -p second -D '另一台打印机' -m everywhere -v ipp://myhost/second

# 示例3:添加带驱动和选项的Samba打印机
CUPS_LPADMIN_PRINTER3=lpadmin -p third -D 'Samba打印机' -m '驱动字符串' -o PageSize=A4 -v smb://user:pass@host/printer

# 启用打印机
CUPS_LPADMIN_PRINTER3_ENABLE=cupsenable third

通过Web界面手动配置

  1. 启用Web界面:设置环境变量CUPS_WEBINTERFACE="yes"和CUPS_REMOTE_ADMIN="yes"(建议仅临时启用)
  2. 手动修改配置文件(如需持久化):
    shell
    # cupsd.conf配置示例
    Listen *:631
    WebInterface Yes
    <Location />
      Order allow,deny
      Allow from all
    </Location>
    <Location /admin>
      Order allow,deny
      Allow from all
    </Location>
    
  3. 访问管理界面:https://<容器IP>:631/admin或https://<容器主机名>:631,使用CUPS管理员账户登录配置

通过文件自动配置

  1. 先通过Web界面或lpadmin命令配置并测试打印机
  2. 导出配置文件:
    shell
    # 从容器复制配置文件
    docker cp cups-test:/etc/cups/printers.conf ~/mycups/
    docker cp cups-test:/etc/cups/ppd/PrinterName.ppd ~/mycups/
    
  3. 构建自定义镜像:
    Dockerfile
    # ~/mycups/Dockerfile
    FROM drpsychick/airprint-bridge:latest
    COPY printers.conf /etc/cups/
    COPY PrinterName.ppd /etc/cups/ppd/
    
  4. 使用自定义镜像创建容器:
    shell
    docker build -t mycups:latest ~/mycups/
    docker run -d --name my-airprint-bridge mycups:latest
    

配置AirPrint

无需额外配置,添加打印机后自动通过Avahi服务广播AirPrint协议,iOS/macOS设备可自动发现。

配置Google Cloud Print

默认禁用,需通过以下步骤配置(基于"快速体验"中创建的容器):

  1. 进入容器生成配置文件:

    shell
    docker exec -it cups-setup /bin/bash
    # 执行配置工具,按提示完成设置(生成gcp-cups-connector.config.json)
    (cd /etc/gcp-connector; gcp-connector-util init)
    
  2. 设置以下环境变量启用服务:

    shell
    GCP_ENABLE_LOCAL="false"          # 是否启用本地GCP服务
    GCP_ENABLE_CLOUD="false"          # 是否启用云端GCP服务
    GCP_XMPP_JID="从配置文件获取"       # XMPP JID
    GCP_REFRESH_TOKEN="从配置文件获取"  # 刷新令牌
    GCP_PROXY_NAME="从配置文件获取"     # 代理名称
    

部署专用AirPrint桥接容器

Linux主机网络配置

为使容器在本地子网可见,需创建macvlan网络接口(主机需与容器通信时需要):

shell
eth=eth0                          # 物理网络接口
mac=AA:AA:AA:AA:AA                # 物理接口MAC地址
mac2=AA:AA:AA:AA:AB               # 容器虚拟MAC地址

# 启用混杂模式(支持多个MAC地址)
sudo ifconfig $eth promisc

# 创建macvlan接口
sudo ip link add mac0 link $eth address $mac type macvlan mode bridge

# 刷新网络配置
sudo -- bash -c '(
dhclient -r $eth && ip addr flush dev $eth && ip neigh flush all
dhclient mac0 && service resolvconf restart || dhclient $eth
)'

创建Docker网络与容器

  1. 创建macvlan网络(替换为实际子网和网关):

    shell
    # 若无需主机与容器通信,parent可直接使用物理接口(如eth0)
    docker network create --driver macvlan --subnet 192.168.2.0/24 --gateway 192.168.2.1 -o parent=mac0 localnet
    
  2. 创建并启动容器:

    shell
    cups_ip=192.168.2.100             # 容器IP
    cups_name=cups.home               # 容器主机名
    
    docker create --name cups-airprint \
      --net=localnet --ip=$cups_ip --hostname=$cups_name \
      --memory=100M \
      -p 137:137/udp -p 139:139/tcp -p 445:445/tcp \
      -p 631:631/tcp -p 5353:5353/udp \
      -e CUPS_ADMIN_USER=admin -e CUPS_ADMIN_PASSWORD=secr3t \
      -e CUPS_LPADMIN_PRINTER1="lpadmin -p epson -D '爱普生打印机' -m raw -v smb://user:pass@192.168.2.2/epson" \
      drpsychick/airprint-bridge:latest
    
    # 启动容器
    docker start cups-airprint
    

测试打印机

  1. iOS/macOS设备:在"设置-打印机"中,默认标签页应显示前缀为"AirPrint"的打印机
  2. Web界面测试:登录CUPS管理界面,在打印机"维护"下拉菜单中选择"打印测试页"
  3. iOS打印测试:打开任意文件,点击"分享-打印",选择目标打印机完成打印

常见问题

QNAP设备提示

QNAP设备不支持macvlan,需使用qnet驱动创建网络:

shell
docker network create --driver=qnet --ipam-driver=qnet --ipam-opt=iface=bond0 --subnet <子网> <网络名称>

其他问题

详见项目issue跟踪:https://github.com/DrPsychick/docker-cups-airprint/issues

致谢

基于以下项目的出色工作:

  • https://hub.docker.com/r/jstrader/airprint-cloudprint/
  • https://github.com/tjfontaine/airprint-generate

贡献

欢迎通过以下方式贡献:

  • 提交issue反馈问题或建议
  • 创建讨论参与功能规划
  • 提交Pull Request改进代码

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 airprint-bridge 镜像标签

docker pull docker.xuanyuan.run/drpsychick/airprint-bridge:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull drpsychick/airprint-bridge:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
drpsychick/airprint-bridge
教程轩辕镜像功能与使用教程
定价查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
商务合作:点击复制邮箱
用户协议·隐私政策·©2024-2026 源码跳动
用户协议·隐私政策©2024-2026 杭州源码跳动科技有限公司商务合作:点击复制邮箱

更多 airprint-bridge 镜像推荐

drpsychick/arkcluster logo

drpsychick/arkcluster

drpsychick
该镜像为临时Docker镜像,已被drpsychick/arkserver替代,是thmhoag/arkserver项目的分支,等待相关PR合并。
1万+ 次下载
5 年前更新
drpsychick/argocd-kubectl logo

drpsychick/argocd-kubectl

drpsychick
包含argocd、kubectl、kustomize、helm等Kubernetes工具及git、curl、jq等常用工具的CI镜像,适用于持续集成流程中的相关操作。
10万+ 次下载
6 天前更新
drpsychick/influxdb logo

drpsychick/influxdb

drpsychick
基于Alpine的InfluxDB多架构Docker镜像,云就绪且可通过环境变量完全配置
10万+ 次下载
10 天前更新
drpsychick/dnsmasq logo

drpsychick/dnsmasq

drpsychick
自动构建的多架构Docker镜像,基于Alpine,可通过环境变量完全配置,用作本地DNS和/或DHCP服务器,适用于简单/家庭环境,支持无状态运行。
4 次收藏5万+ 次下载
7 天前更新
drpsychick/arkserver logo

drpsychick/arkserver

drpsychick
ARK: Survival Evolved的Linux Docker镜像,适用于单实例和ARK集群部署。
1万+ 次下载
17 天前更新
drpsychick/dind-buildx logo

drpsychick/dind-buildx

drpsychick
用于持续集成的Docker镜像,集成Docker in Docker(dind)和Buildx以支持Docker构建,包含git、curl、jq等常用工具,满足CI流程中的构建与工具需求。
1 次收藏1万+ 次下载
6 天前更新

查看更多 airprint-bridge 相关镜像