Docker

CUPS 客戶端無法使用 docker 容器名稱

  • April 14, 2020

當提供 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

引用自:https://serverfault.com/questions/1012236