win11使用Docker隔离comfyui,避免每次python地狱依赖

用Docker!自建 ComfyUI 容器,这笔记也是修修改改无数遍,windows系统comfyui首选用docker!

docker 必须支持 GPU

bash 复制代码
docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu22.04 nvidia-smi

成功才继续

一、在 E:\ComfyUI_Projects\lipsync\ 目录下新建两个文件

  • 文件 1:Dockerfile(完整企业级版本)
    新建文件 Dockerfile,内容全部复制下面代码(最终内容:gpt+grok+deepseek):
bash 复制代码
# ==================== 企业级 ComfyUI 自建镜像(RTX 5060 Ti 专用) ====================
FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive
ENV COMFYUI_PATH=/comfy
ENV PATH="${COMFYUI_PATH}/venv/bin:$PATH"

# 1. 使用阿里云 apt 源 + 安装基础依赖
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
    apt-get update && apt-get install -y \
    software-properties-common \
    && add-apt-repository ppa:deadsnakes/ppa -y \
    && apt-get update \
    && apt-get install -y \
    git python3.10 python3.10-venv python3.10-dev \
    libgl1 libglib2.0-0 libsm6 libxext6 libxrender-dev libgomp1 \
    wget curl ffmpeg \
    && rm -rf /var/lib/apt/lists/*

# 2. 创建工作目录
WORKDIR ${COMFYUI_PATH}

# 3. 先克隆 ComfyUI 主程序(直接官方地址,稳定)
RUN git clone https://github.com/comfyanonymous/ComfyUI.git .

# 4. 创建虚拟环境
RUN python3.10 -m venv venv

# 5. 安装 PyTorch Nightly cu128(支持 RTX 5060 Ti Blackwell)
RUN . venv/bin/activate && \
    pip install --no-cache-dir --pre torch torchvision torchaudio \
    --index-url https://download.pytorch.org/whl/nightly/cu128

# 6. 安装 ComfyUI 主程序依赖
RUN . venv/bin/activate && \
    pip install --no-cache-dir -r requirements.txt

# 7. 预装 Wav2Lip 核心依赖
RUN . venv/bin/activate && \
    pip install --no-cache-dir \
    opencv-python-headless librosa imageio ffmpeg-python

# 8. 安装 ComfyUI-Manager + 三大核心节点
RUN . venv/bin/activate && \
    mkdir -p custom_nodes && \
    cd custom_nodes && \
    git clone https://github.com/ltdrdata/ComfyUI-Manager.git && \
    git clone https://github.com/ShmuelRonen/ComfyUI_wav2lip.git && \
    git clone https://github.com/Gourieff/ComfyUI-ReActor.git && \
    git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git

# 9. 分别安装三个节点的依赖
RUN . venv/bin/activate && \
    cd custom_nodes/ComfyUI_wav2lip && pip install --no-cache-dir -r requirements.txt && \
    cd ../ComfyUI-ReActor && pip install --no-cache-dir -r requirements.txt && \
    cd ../ComfyUI-VideoHelperSuite && pip install --no-cache-dir -r requirements.txt

# 10. 启动命令
EXPOSE 8188
CMD ["/comfy/venv/bin/python", "main.py", "--listen", "0.0.0.0", "--force-fp16", "--preview-method", "auto"]
  • 文件 2:compose.yaml(已适配自建路径),把现有的 compose.yaml 全部替换为下面内容:
yaml 复制代码
services:
  comfy-lipsync:
    build: .
    container_name: comfy-lipsync
    restart: unless-stopped
    ports:
      - "8189:8188"

    volumes:
      - E:/ComfyUI_Models:/comfy/models
      - E:/ComfyUI_Workflows:/comfy/user/default/workflows
      - ./input:/comfy/input
      - ./output:/comfy/output

    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

    environment:
      - CLI_ARGS=--listen 0.0.0.0 --force-fp16 --preview-method auto

二、构建并启动(真实可运行命令)

在 E:\ComfyUI_Projects\lipsync 目录下执行:

powershell 复制代码
# 1. 构建镜像(第一次会花 10~20 分钟,之后极快)
cd /d E:\ComfyUI_Projects\lipsync
docker-compose build --no-cache

# 2. 启动容器
podman-compose up -d

验证命令(构建完成后立即执行):

powershell 复制代码
podman-compose ps
podman logs comfy-lipsync --tail 50

成功标志:看到 "ComfyUI started" 或 "To see the GUI go to" 字样。

浏览器打开 http://127.0.0.1:8189 测试。

模型放置提醒(必须放对)

  • wav2lip_gan.pth → E:\ComfyUI_Models\facerestore_models\wav2lip_gan.pth
  • GFPGANv1.4.pth → E:\ComfyUI_Models\facerestore_models\GFPGANv1.4.pth

!(不再用podman), Podman 环境已不可修复,必须重建(不是修,是重装级别)

c 复制代码
E:\ComfyUI_Projects\lipsync>podman system prune -a -f
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman socket: failed to read identity "C:\\Users\\65193\\.local\\share\\containers\\podman\\machine\\machine": open C:\Users\65193\.local\share\containers\podman\machine\machine: The system cannot find the file specified.

E:\ComfyUI_Projects\lipsync>podman machine start
Starting machine "podman-machine-default"
Error: command C:\WINDOWS\system32\wsl.exe [-u root -d podman-machine-default sh] failed: exit status 0xffffffff (wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
<3>WSL (9785 - Relay) ERROR: CreateProcessParseCommon:986: getpwnam(root) failed 5)

E:\ComfyUI_Projects\lipsync>

一、彻底清理 Podman + WSL 残留

  1. 关闭 WSL
c 复制代码
wsl --shutdown
  1. 删除 Podman Machine(强制)
c 复制代码
podman machine rm -f

如果报错(大概率)👇👉 手动删:

c 复制代码
C:\Users\65193\.local\share\containers\podman
  1. 删除 WSL 虚拟机(关键)
c 复制代码
wsl -l -v

你会看到:

c 复制代码
podman-machine-default

删除它:

c 复制代码
wsl --unregister podman-machine-default

二、重新初始化 Podman(干净重建)

bash 复制代码
podman machine init --disk-size 100

👉 注意:- 给 100GB(你做AI视频必须),然后:

bash 复制代码
podman machine start

三、修改存储到 D盘(避免再炸),也可以/mnt/e/podman-storage,改到E盘

执行:

bash 复制代码
podman machine ssh

进入 Linux 后:

bash 复制代码
sudo mkdir -p /mnt/e/podman-storage

然后编辑:

bash 复制代码
sudo vi /etc/containers/storage.conf

写入:

bash 复制代码
[storage]
driver = "overlay"
graphroot = "/mnt/e/podman-storage"

重启:

bash 复制代码
exit
podman machine stop
podman machine start

安装 podman-compose

  • 在 Windows 命令提示符(管理员身份) 执行下面命令:
c 复制代码
:: 1. 安装 podman-compose(只需执行一次)
pip install podman-compose

:: 2. 验证安装成功
podman-compose --version
  • 启动容器(最终命令)
c 复制代码
:: 切换到项目目录
cd /d E:\ComfyUI_Projects\lipsync

:: 使用 podman-compose 启动(企业级推荐命令)
podman-compose up -d
  • 永久加入 PATH(企业级推荐,之后所有命令都可直接用 podman-compose)
  1. 右键 此电脑 → 属性 → 高级系统设置 → 环境变量
  2. 在"用户变量"中找到 Path,点击"编辑"
  3. 点击"新建",添加下面这一行:
bash 复制代码
C:\Users\65193\AppData\Roaming\Python\Python313\Scripts

四、在Windows上配置Podman GPU支持,确保已启用 WSL2 作为Podman的后端

  1. 重置并重新初始化 Podman 机器(推荐)
    这是最直接有效的方法,可以清除潜在的状态异常。
bash 复制代码
# 停止当前虚拟机
podman machine stop
# 删除现有虚拟机(放心,这不会影响你的 Windows 文件)
podman machine rm podman-machine-default
# 重新创建一个新虚拟机,并分配更多资源
podman machine init --cpus 6 --memory 8192 --disk-size 120
# 启动新虚拟机
podman machine start
  • 说明:--cpus 根据你的 CPU 核心数调整,--memory 单位是 MB,--disk-size 单位是 GB。RTX 5060 建议至少分配 8GB 内存。
  1. 验证连接是否恢复
    重置完成后,运行一个简单命令测试:
bash 复制代码
podman version

如果输出了客户端和服务端的版本信息,说明连接已成功恢复。

  1. 进入虚拟机并安装 NVIDIA Container Toolkit
bash 复制代码
# 通过 SSH 进入 Podman 虚拟机
podman machine ssh

此时您将进入一个 Linux 终端(通常显示 [user@fedora ~]$),然后执行以下命令:

bash 复制代码
# 添加 NVIDIA 官方仓库并安装工具包
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
sudo yum install -y nvidia-container-toolkit
# 生成 CDI 配置文件
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
# 验证配置
sudo nvidia-ctk cdi list

完成后输入 exit 退出虚拟机。

  1. 测试 GPU 访问
    在 Windows 命令行中执行:
bash 复制代码
podman run --rm --device nvidia.com/gpu=all nvidia/cuda:12.8.0-base-ubuntu22.04 nvidia-smi

如果看到您的 RTX 5060 显卡信息,就大功告成了!

  • 切换默认连接命令是:podman system connection default podman-machine-default
相关推荐
kevin_水滴石穿2 小时前
Docker 运行一段时间后,/var/lib/docker/overlay2目录占用空间过大的处理方案
运维·docker·容器
牛奶咖啡132 小时前
Docker容器实践——docker的安装与加速器配置
docker·docker与虚拟机对比·docker是什么·docker容器的发展方向·docker容器的两种安装方法·docker配置国内加速器·普通用户添加docker用户组
小夏子_riotous2 小时前
Docker学习路径——1、简介
linux·运维·服务器·docker·容器·云计算
walkerLing3 小时前
Docker Day2
运维·docker·容器
牛奶咖啡133 小时前
Docker容器实践——docker中的镜像、容器与仓库
docker·容器·docker的镜像·docker的容器·docker的仓库·docker的容器操作命令·docker的镜像操作命令
从零开始学习人工智能3 小时前
Windows 下 Docker + WSL2 + NVIDIA GPU 完整配置指南(2026 最新实测)
windows·docker·容器
岳来3 小时前
网络小白docker network create时如何指定subnet 和gateway
网络·docker·gateway·subnet
marsh02064 小时前
32 openclaw容器化部署:Docker与Kubernetes集成指南
docker·ai·容器·kubernetes·编程·技术
一招定胜负4 小时前
docker基础知识
docker·容器·eureka