docker列印服務(低成本的無線列印)
2023-05-31 04:19:51
原文作者:我的暱稱已被註冊群暉NAS得益於高質量的軟體設計和方便的使用體驗深受家庭用戶喜愛。
隨著使用場景的擴展,各種功能的發掘也隨著需求的增長不斷出現。列印雖然是個古老的話題了,但是對於有列印需求的用戶來說,有些時候還真的離不開。於是利用群暉NAS配合低成本印表機,實現家庭(小型辦公環境)印表機共享的方案深受歡迎。但是對於有無線列印需求的用戶來說,如果印表機本身不帶AirPrint功能,那麼有沒有辦法實現呢?前一段時間,我寫了個利用群暉的虛擬機實現無線列印的文章,有些同學提出來,能不能利用docker來實現。於是周末抽空玩了一下,把結果分享一下。方案描述
由於驅動支持的原因,有一部分印表機沒有辦法利用Synology內置的CUPS驅動實現AirPrint。但是Synology系統上沒有很好的辦法自定義驅動安裝印表機。
由於Docker鏡像可定製性高,可以很方便的安裝自定義驅動和軟體,所以利用Synology系統的Docker容器,掛載NAS上的印表機,實現區域網印表機共享,和行動裝置列印需求。尤其是iOS,由於系統原因,很多無線列印都是通過安裝第三方軟體來實現。這個使用體驗和系統原生支持的AirPrint還是有一些不同的。
準備工作1. 打開系統的ssh服務,方便後續操作
2. 打開系統的Bonjour服務發現
3. 連接ssh。如果是Windows 10系統,可以安裝一下ssh client或者使用其他軟體如putty等
4. 停掉系統內置的CUPS服務,避免埠衝突
synoservicecfg--hard-stop cupsd
synoservicecfg --hard-stop cups-lpd
synoservicectl --stop cupsd
synoservicectl --stop cups-lpd5. 為Docker容器創建文件夾,方便儲存配置文件:我這裡創建了docker-aiprint,裡面兩個子文件夾如圖
步驟
1. 準備就緒之後,咱們就開始選docker鏡像了,我這裡選擇的是:
也可以在ssh裡面一步到位:
docker run -d --name=airprint
--net="host"
--privileged=true
-e
-e
-e
-e
-e
-v"/volume1/docker/airprint/config":"/config"
-v /dev:/dev
-v"/volume1/docker/airprint/avahi":"/etc/avahi/services"
-v /var/run/dbus:/var/run/dbus"mnbf9rca/cups-google-print"
備註:以手命令裡面的"CUPS_USER_ADMIN"="admin"參數是CUPSD服務的管理頁面帳號,"CUPS_USER_PASSWORD"="pass"是密碼。我這裡保持默認,自己家用無所謂。
2. 命令執行完之後,容器已經運行了
3. 試一下登錄管理頁面:https://DSM的IP:631/admin/ 注意這裡默認是https。
4. 添加印表機
印表機已經可以發現了
別忘記勾選共享
這一步的時候,如果找不到自己的印表機驅動,可以手動指定驅動。我的HP機器,可以去這裡看看:
https://developers.hp.com/hp-linux-imaging-and-printing
我選擇了默認A4紙,最佳列印質量
設置完後回到印表機這一頁,可以看到印表機處於空閒狀態
可以列印一個測試頁
手機端列印測試
總結是不是很簡單?資源佔用明顯比之前的虛擬機方案小太多了。
順便附上CUPSD的配置文件,如果登錄CUPSD管理頁面有問題的,可以參考(重點是注釋掉AuthType Default和添加Allow from all)。
Restrict access to the server...
管理頁面
AuthType Default
#Require user @SYSTEM
Allow from all
Order deny,allow
其他位置酌情修改即可。
,