
bgernert/docker-cups本镜像基于轻量级Alpine Linux构建,集成了CUPS(通用Unix打印系统)及cups-pdf组件。CUPS作为跨平台打印服务标准,提供网络打印协议支持(如IPP、LPD、SMB);cups-pdf则实现PDF虚拟打印功能,可将打印任务直接输出为PDF文件。镜像体积小、资源占用低,适合快速部署轻量级网络打印服务。
通过以下命令快速启动CUPS服务器容器:
bashdocker run -d \ --name cups-server \ -p 631:631 \ -e CUPS_USER_ADMIN=admin \ -e CUPS_PASSWORD=securepassword \ -v /path/to/cups-config:/etc/cups \ -v /path/to/pdf-output:/var/spool/cups-pdf \ -v /dev/bus/usb:/dev/bus/usb \ # 如需连接USB打印机,添加此挂载 --restart unless-stopped \ alpine-cups-with-pdf
参数说明:
-p 631:631:映射CUPS管理端口(Web界面及打印协议端口)-e CUPS_USER_ADMIN:管理员用户名(默认:admin)-e CUPS_PASSWORD:管理员密码(建议设置强密码)-v /path/to/cups-config:/etc/cups:持久化CUPS配置(包含打印机队列、权限等)-v /path/to/pdf-output:/var/spool/cups-pdf:自定义PDF输出目录(cups-pdf生成的文件将保存在此)-v /dev/bus/usb:/dev/bus/usb:挂载USB总线(仅物理机部署且需连接USB打印机时使用)创建docker-compose.yml文件,实现更便捷的服务管理:
yamlversion: '3' services: cups-server: image: alpine-cups-with-pdf container_name: cups-server ports: - "631:631" environment: - CUPS_USER_ADMIN=admin - CUPS_PASSWORD=your_secure_password - CUPS_LOG_LEVEL=info # 日志级别:debug/info/warn/error volumes: - ./cups-config:/etc/cups # 持久化配置文件 - ./pdf-output:/var/spool/cups-pdf # PDF输出目录 - ./printers:/etc/printers # 打印机驱动/PPD文件目录(可选) - /var/run/dbus:/var/run/dbus # 如需使用Avahi网络发现(可选) devices: - /dev/bus/usb:/dev/bus/usb # USB打印机设备映射(可选) restart: unless-stopped
启动服务:
bashdocker-compose up -d
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
CUPS_USER_ADMIN | CUPS管理员用户名 | admin |
CUPS_PASSWORD | 管理员用户密码 | password |
CUPS_LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
CUPS_LANGUAGE | Web管理界面语言(如zh_CN/en_US) | en_US |
| 容器内路径 | 说明 | 建议挂载方式 |
|---|---|---|
/etc/cups | CUPS配置文件目录(含打印机队列、权限) | 宿主机目录持久化 |
/var/spool/cups-pdf | cups-pdf生成的PDF文件输出目录 | 宿主机目录或命名卷 |
/etc/printers | 自定义打印机驱动/PPD文件存放目录 | 按需挂载(可选) |
/var/spool/cups | 打印任务假脱机目录 | 按需挂载(可选,用于任务持久化) |
| 端口 | 说明 | 必须映射 |
|---|---|---|
631 | CUPS Web管理界面及打印服务端口 | 是 |
容器启动后,通过浏览器访问 http://<宿主机IP>:631 进入CUPS管理界面:
CUPS_USER_ADMIN)及密码(CUPS_PASSWORD)PDF,打印任务将输出至 /var/spool/cups-pdf/<用户名> 目录如需修改cups-pdf输出路径、文件名格式等参数,可通过挂载自定义配置文件实现:
cups-pdf.conf 文件(可从容器内 /etc/cups/cups-pdf.conf 复制默认配置)Out ${HOME}/PDF 改为 Out /var/spool/cups-pdf/custom)bash-v /path/to/custom/cups-pdf.conf:/etc/cups/cups-pdf.conf
CUPS_PASSWORD),并限制631端口访问来源(如通过防火墙仅允许信任IP)/etc/printers 并在Web界面添加打印机时选择docker logs cups-server 查看容器日志,定位打印服务异常问题manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务