如何使用 Docker 部署 ComfyUI 到 Linux 服务器并开放端口

文章导读
使用 Docker 部署 ComfyUI 到 Linux 服务器需要配置 NVIDIA 容器工具包以调用 GPU,并将容器端口 8188 映射到宿主机。直接开放端口存在安全风险,建议配合防火墙或反向代理限制访问来源。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

使用 Docker 部署 ComfyUI 到 Linux 服务器需要配置 NVIDIA 容器工具包以调用 GPU,并将容器端口 8188 映射到宿主机。直接开放端口存在安全风险,建议配合防火墙或反向代理限制访问来源。

先说结论:Docker 部署 ComfyUI 的核心是 GPU 驱动兼容与网络端口映射,生产环境必须配置访问限制。

  • 适合:拥有 NVIDIA 显卡的 Linux 服务器,需要隔离环境运行稳定扩散工作流。
  • 先准备:安装 Docker Engine、NVIDIA Container Toolkit 并确认显卡驱动正常。
  • 验收:浏览器能访问 IP:8188 且后台日志显示 GPU 已启用。

命令速用版

docker run -d `--gpus` all -p 8188:8188 -v /opt/comfyui/models:/comfyui/models `--name` comfyui yanwk/comfyui-boot

为什么会这样

ComfyUI 默认监听本地地址且依赖本地 GPU 资源。Docker 容器默认网络隔离且无法直接调用宿主机硬件,必须通过端口映射暴露服务,通过 GPU 参数传递硬件权限。

分步处理

步骤 1:安装 NVIDIA Container Toolkit

普通 Docker 无法识别显卡,需安装工具包。安装后运行 nvidia-ctk runtime configure `--runtime`=docker 并重启 Docker 服务。

步骤 2:拉取镜像并启动容器

使用社区维护镜像可减少配置工作量。执行启动命令时,-v 参数用于持久化模型文件,防止容器删除后数据丢失。

如何使用 Docker 部署 ComfyUI 到 Linux 服务器并开放端口

步骤 3:配置防火墙与安全组

云服务器需在控制台开放 TCP 8188 端口。本地服务器使用 ufw allow 8188 放行。建议仅受信任 IP 访问。

怎么验证是否生效

在服务器本地执行 curl http://127.0.0.1:8188 返回 JSON 即服务正常。外部浏览器访问 http://服务器 IP:8188 能看到 ComfyUI 界面。容器日志中搜索 CUDA 或 GPU 关键字确认加速已启用。

常见坑

  • 未安装 NVIDIA Container Toolkit 导致容器启动报错或无法使用 GPU。
  • ComfyUI 启动参数未绑定 0.0.0.0,导致外部无法访问,仅本机可连。
  • 云服务器安全组未放行 8188 端口,导致连接超时。
  • 模型目录权限错误,导致容器内无法写入下载的文件。

常见问题

如何确认 Docker 容器正在使用 GPU?

在宿主机运行 nvidia-smi 查看进程列表,或在容器内运行 nvidia-smi 看到显卡信息。

外部网络无法访问 ComfyUI 界面怎么办?

检查云服务器安全组是否放行 8188 端口,并确认启动命令包含 -p 8188:8188。

如何更新 ComfyUI 版本?

删除旧容器,拉取最新镜像后重新运行启动命令,模型数据因挂载卷保留不受影响。

参考来源

  • ComfyUI 官方 GitHub 仓库,标题:comfyanonymous/ComfyUI,URL:https://github.com/comfyanonymous/ComfyUI
  • Docker Hub 镜像页,标题:yanwk/comfyui-boot,URL:https://hub.docker.com/r/yanwk/comfyui-boot
  • NVIDIA 官方文档,标题:NVIDIA Container Toolkit,URL:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html