Docker
CUPS 客戶端無法使用 docker 容器名稱
當提供 CUPS 伺服器作為容器名稱時,CUPS 客戶端無法列印,但它與容器 IP 一起工作正常:
樣品
docker-compose.yml
:version: '3.7' services: client: container_name: cups_client image: cups_client server: container_name: cups_server image: cups_server
客戶端容器
/etc/cups/client.conf
使用伺服器容器的名稱:ServerName cups_server
但是,此配置無法正常工作(在客戶端容器內執行):
$ lpstat -r scheduler is running $ lpstat -v lpstat: Error - add '/version=1.1' to server name.
我嘗試將 ‘/version=1.1’ 添加到 中的伺服器名稱
/etc/cups/client.conf
,但錯誤仍然顯示。但是,如果我在 中使用伺服器容器的 IP 地址,則
/etc/cups/client.conf
列印效果很好:ServerName 172.27.0.2
查看差異
lpstat -v
:$ lpstat -r scheduler is running $ lpstat -v device for queue_name: ipp://192.168.0.10/ipp/port1
但是,名稱解析在客戶端容器中似乎可以正常工作:
$ getent hosts cups_server 172.27.0.2 cups_server
現在使用 IP 並不是一個真正的選項,因為列印配置已經在建構期間提供,此時 IP 尚不知道。同樣在我的理解中,CUPS 應該可以很好地處理容器名稱。
感謝任何想法如何解決這個問題,或者為什麼杯子不能與容器名稱相處。
原來這是一個 CUPS 伺服器配置問題。
CUPS 伺服器登錄
/var/log/cups/error_log
:Request from "172.27.0.3" using invalid Host: field "cups-server:631".
解決方案:
加入
ServerAlias cups-server
_/etc/cups/cupsd.conf