Armbian + Docker 打造AirPrint Epson L3250系列打印机
Armbian + Docker 打造无冲突、全功能 AirPrint Epson L3250 系列打印机
一、迁移背景与“避坑”指南
为什么要折腾?
之前在 OpenWrt 路由器上使用 jysky007/cups 容器搭建打印服务器,体验非常稳定。但最近迁移到 Armbian 盒子后,却遇到严重系统冲突:
- 现象:只要 CUPS 容器在运行,宿主机上的其他 Docker 容器就无法启动或重启。必须先
docker stop cups,才能操作其他服务。 - 原因:
jysky007/cups是为嵌入式系统设计的“全家桶”镜像,容器内部运行了自己的 DBus 和 Avahi 守护进程。在 Armbian(标准 Linux + Systemd)上,容器抢占系统总线资源,导致宿主机 Systemd 与 Docker 资源冲突。
解决方案
为了彻底解决冲突,我采用了解耦架构:
- Docker (ydkn/cups):只运行 CUPS 服务,不碰 Systemd,避免冲突。
- 宿主机 Avahi:利用宿主机的稳定 Avahi 广播 AirPrint 服务。
这样做的好处:
✅ 不影响其他 Docker 容器运行
✅ 支持完整彩色打印
✅ 方便未来维护和升级
二、准备工作
- 设备:运行 Armbian 的盒子(N1、OECT等)
- 打印机:Epson L3250(或其他网络打印机),已联网
- 环境:已安装 Docker 和 Docker Compose
三、部署纯净版 CUPS 容器
使用 ydkn/cups 镜像,只运行 CUPS 服务,配置文件映射到宿主机便于修改 PPD 驱动。
- 创建数据目录:
1 | mkdir -p /mnt/docker/cups/cups_data |
- 编写
docker-compose.yml:
1 | services: |
- 启动容器:
1 | docker compose up -d |
- 添加打印机:
- 打开浏览器访问
http://你的ArmbianIP:631/admin - 添加打印机,协议选 互联网打印协议 (IPP)
- 驱动选择:EPSON XP-322/323/325 Series, Epson Inkjet Driver (ESC/P-R, Color)
- 勾选 [✅] Share This Printer
四、配置宿主机 Avahi 广播
让宿主机负责 AirPrint 广播,保证 iPhone / iPad 能发现打印机。
- 安装 Avahi:
1 | sudo apt update |
- 锁定广播接口:
编辑/etc/avahi/avahi-daemon.conf,只广播真实物理网卡,避免 Docker 虚拟网卡干扰:
1 | [server] |
- 创建 AirPrint 服务文件:
1 | sudo vi /etc/avahi/services/AirPrint.service |
内容如下(彩色打印关键):
1 |
|
- 重启 Avahi:
1 | sudo systemctl restart avahi-daemon |
验证步骤
- 打印照片,选择 Epson L3250 AirPrint (Color)
- 应该可以看到彩色预览,并正常打印
✅ 系统稳定,不再影响其他 Docker 容器
✅ AirPrint 全功能(黑白 / 彩色 / PDF / 图片)
总结
通过 **Docker 极简 CUPS + 宿主机 Avahi ** 的方式,我们成功实现了:
- 无冲突的多容器环境
- 全功能 AirPrint 彩色打印
- 轻量、易维护,升级方便
适用于 Armbian / Ubuntu / Debian 嵌入式盒子,尤其适合 Epson L 系列打印机。
评论




