如何在 Container Station 中调试和修复常见容器问题?


最后修订日期: 2025-04-08

借助 Container Station 可以在 QNAP 设备上部署第三方应用程序和容器。用于创建这些容器的开源映像可能会带来部署问题。

QNAP 不提供对第三方映像的技术支持。请按以下步骤诊断并解决常见的容器相关问题。

检查容器配置

容器将继承源映像的所有属性。在部署之前,请扫描映像文件以识别安全漏洞、配置错误和后门威胁。

如果部署后容器出错,请分析容器日志进行诊断并解决问题。

检查映像信息

在部署容器之前,请检查映像前提条件并完成任何必需的步骤。

提示
要查找 Docker 注册表映像的映像详细信息,请在 Container Station 的浏览 > Docker Hub 中单击映像名称。或者在 Docker Hub 中搜索映像。

例如,使用 postgres 映像部署 PostgreSQL 容器需要设置 POSTGRES_PASSWORD 环境变量。如果没有此变量,容器将无法部署。

重要
在 Container Station 中部署 PostgreSQL 容器时,请在“环境”部分配置 POSTGRES_PASSWORD 环境变量。

分析 Container Station 事件日志

Container Station 将记录所有应用程序和容器活动。故障日志提供明确的错误消息,包括应用程序或容器名称、错误代码和错误详细信息。

  1. 打开 Container Station。
  2. 单击事件日志
  3. 找到错误日志。

示例 1

在此示例中,事件日志记录了一个启动故障,因为指定端口已被其他服务占用,导致容器无法绑定到所需的网络接口。

示例 2

在此示例中,事件日志记录了一个启动故障,因为入口点命令配置错误,导致容器无法执行预期过程。

检查各个容器日志

分析各容器日志中的错误和警告消息。Container Station 将记录详细错误状态,例如缺失环境变量、命名格式无效、映像检索失败和初始化失败。

  1. 打开 Container Station。
  2. 单击容器
  3. 选择一个容器以打开详细信息页面。
  4. 单击日志
  5. 查看错误和警告消息。

示例 1

事件日志记录了一个启动故障,因为部署 MySQL 容器之前未设置 MYSQL_ROOT_PASSWORD 环境变量,导致其在初始化之后立即退出。

示例 2

事件日志记录了一个启动故障,因为 Rancher 容器是在未启用特权模式的情况下使用 rancher/rancher 映像部署的。如果没有 --privileged 标记,容器将无法正确启动。

确认映像兼容性

请确保映像与 QNAP 设备的处理器架构和操作系统兼容。映像版本或架构不正确将导致容器无法运行。

检查平台兼容性

请确认映像平台与 QNAP 设备的 CPU 架构匹配。如果从其他 QNAP 设备传输映像,请确保两台设备所使用的架构相同。

重要
64 位 x86 映像无法在 64 位或 32 位 ARM 设备上运行。同样,ARM 映像无法在 64 位 x86 设备上运行。

Docker

Docker 映像页面提供每个映像版本的受支持架构和操作系统列表。Docker 映像的一般兼容性指南如下:

  • linux/arm/v7 映像支持 32 位 ARM 架构。
  • linux/arm64/v8 映像支持 64 位 ARM 架构。
  • linux/amd64 映像支持 64 位 x86 架构。

LXD

有关兼容性详细信息,请访问 LXD 映像服务器。LXD 容器的一般架构兼容性指南如下:

  • armhf 容器支持 32 位 ARM 架构。
  • arm64 容器支持 64 位 ARM 架构。
  • amd64 容器支持 64 位 x86 架构。

识别容器不兼容性

不兼容的 Docker 容器可能会记录 exec format error,表示架构不匹配。

部署不兼容的 LXD 容器时,Container Station 会在“事件日志”页面记录故障日志。

检查页面大小兼容性

QNAP 将系统页面大小从 4K 更新到 32K,以提高特定 32 位 ARM 设备的性能。此更改会限制容器访问内存资源,导致分段故障。在部署之前验证第三方容器兼容性。

系列型号
TS-x31PTS-531P
TS-x31P3TS-231P3、TS-431P3
TS-x31XTS-231X、TS-431X、TS-531X、TS-831X、TS-431X2、TS-431X3
TS-x31KXTS-431KX
TS-x31XUTS-431XU、TS-431XU-RP、TS-831XU、TS-831XU-RP、TS-1231XU、TS-1231XU-RP
TS-x31XeUTS-431XeU
TS-x35TS-1635

检查 QNAP 系统配置

请确保已正确配置 QNAP 设备以执行容器部署和编排。

验证网络设置

  1. 登录到 QNAP 设备,然后打开网络与虚拟交换机
  2. 选择高级模式。
  3. 转到网络 > 虚拟交换机
  4. 找到容器网络所使用的网段。
  5. 转到控制台 > 系统 > 安全 > 允许/拒绝列表
    注意
    如果设备上安装了 QuFirewall,请确保其已启用,然后打开 QuFirewall 并将所需网段添加到允许列表。
  6. 确保容器网段已添加到允许列表。
    重要
    QNAP 强烈建议将以下 IP 范围添加到允许列表:10.0.3.0/2410.0.5.0/2410.0.7.0/24172.29.0.0/22172.30.0.0/22。如果启用了 Kubernetes 服务,则还应添加 10.42.0.0/24(Kubernetes Pod 网络 CIDR)。

检查高级权限设置

注意
容器将直接在系统上运行,并与主机设备共享根权限。启用高级文件夹权限可能会影响容器操作。如果容器无法运行,请禁用高级文件夹权限。
  1. 转到控制台 > 权限 > 共享文件夹 > 高级权限
  2. 禁用启用高级文件夹权限
  3. 单击应用
  4. 转到控制台 > 权限 > 配额,并检查用户配额设置。
    注意
    仅当启用了配额管理时才会应用配额设置。
    警告
    检查用户配额设置以确保没有不想要的配额限制。意外的配额设置可能会导致容器因存储限制而报告错误。

验证存储和网络配置

  1. 转到存储与快照总管 > 存储 > 存储/快照
  2. 检查可用存储容量。

    注意
    如果状态非“就绪”,则检查磁盘状态中是否有存储错误。有关详细信息,请参见《QTS 用户指南》或《QuTS hero 用户指南》中的“磁盘状态”。

检查网络配置

执行以下步骤,以确保网络设置已正确配置:

  1. 转到网络与虚拟交换机 > 网络 > 接口,然后查看 DNS 和网关设置。
  2. 确保 DHCP 服务器可以使用虚拟交换机将 IP 地址分配给容器。有关详细信息,请参见《QTS 用户指南》或《QuTS hero 用户指南》中的 “虚拟交换机配置”。
    注意
    虚拟交换机配置中的不分配 IP 地址(用于特殊用途,例如建立外部网络或隔离网络)设置用于特定网络配置。如果不需要自定义网络设置,则建议禁用此设置。
    但是,如果要设置外部或隔离网络,请启用它。请注意,此设置可能会影响容器的网络配置。有关详细信息,请参见《QTS 用户指南》或《QuTS hero 用户指南》中的“在高级模式下创建虚拟交换机”。
  3. 转到 Container Station > 首选项 > 网络设置,并确保容器网段与本地环境不冲突。
    重要
    Container Station 使用 10.0.3.0/2410.0.5.0/2410.0.7.0/24 作为默认 IP 网络。

参考在线帮助和文档

部分映像是开源的,允许用户修改源代码。如果以上故障排除方法都不能解决问题,则可能是源映像不兼容或已损坏。在此情况下,QNAP 建议访问映像网站查找更多信息,或使用同一类别的其他映像。

如果映像来自 Docker 存储库,则可以在映像的概览页面上找到更多信息。例如,Docker 中的 Ubuntu 映像提供快速参考链接以便您获得更多信息。

补充阅读

这篇文章有帮助吗?

谢谢您,我们已经收到您的意见。

请告诉我们如何改进这篇文章:

如果您想提供其他意见,请于下方输入。

选择规格

      显示更多 隐藏更多
      open menu
      back to top