部署前先了解 Fooocus 与 Docker 方案
Fooocus 是一款面向普通用户的 AI 绘画工具,特点是界面简洁、参数较少,适合快速生成图片、做风格测试、封面草图和视觉创意验证。相比手动配置 Python、CUDA、依赖库,Docker 部署能把运行环境封装在容器里,减少“本机能装、换台机器就报错”的情况,尤其适合有独立显卡的个人工作站、实验室服务器和小型团队内网环境。

使用 Docker 的核心思路很简单:先准备 Docker 与显卡运行环境,再拉取 Fooocus 镜像,通过端口映射把网页界面暴露到浏览器,通过目录挂载把模型、配置和输出图片保存到宿主机。这样容器删除后数据仍然存在,后续升级镜像也更安全。
环境准备:系统、显卡与基础组件
建议使用 Linux 服务器或 Windows 搭配 WSL2。显卡方面,NVIDIA 显卡体验更稳定,显存建议 8GB 起步,生成大图或使用更复杂模型时建议 12GB 以上。CPU 也能运行部分流程,但速度较慢,不适合作为长期生产环境。
基础组件包括 Docker Engine、Docker Compose 可选,以及 NVIDIA Container Toolkit。安装完成后,可先执行 docker --version 检查 Docker 是否可用,再执行 docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi 验证容器是否能识别显卡。如果这一步失败,后续 Fooocus 即使启动也可能只能走 CPU,速度会明显下降。
选择镜像:优先可信来源,避免来路不明版本
Fooocus 镜像可能来自项目维护者或社区维护者,不同镜像的内部目录、启动参数会有差异。实际部署时,应优先查看镜像页面的说明、更新时间、下载量和维护记录,不要随意使用来源不明的压缩包或被二次修改过的镜像。示例中使用 ghcr.io/lllyasviel/fooocus:latest 作为写法演示,如镜像页面给出的名称不同,应以实际说明为准。
拉取镜像命令为:docker pull ghcr.io/lllyasviel/fooocus:latest。如果服务器网络环境不稳定,拉取时间可能较长。拉取完成后可执行 docker images 查看本地镜像列表,确认标签、体积和创建时间是否符合预期。
目录规划:模型、输出和配置要单独保存
建议在宿主机上提前创建统一目录,例如:/data/fooocus。其中可继续划分为 models、outputs、config 三类。models 用于保存基础模型、LoRA、VAE 等文件;outputs 保存生成图片;config 保存配置文件或预设。这样做的好处是升级容器时不需要重新下载大量模型,也方便对团队素材进行归档。
可执行:mkdir -p /data/fooocus/models /data/fooocus/outputs /data/fooocus/config。如果容器启动后提示没有写入权限,可检查目录所有者和权限,例如使用 chown 将目录授权给运行 Docker 的用户,或按镜像说明调整容器内运行用户。不要为了省事长期使用过宽权限,尤其是多人共用服务器时,应避免把敏感资料和公共输出混在同一目录。
一键启动:端口映射与 GPU 参数
常见启动命令如下:docker run -d --name fooocus --gpus all -p 7865:7865 -v /data/fooocus/models:/content/Fooocus/models -v /data/fooocus/outputs:/content/Fooocus/outputs -v /data/fooocus/config:/content/Fooocus/config --restart unless-stopped ghcr.io/lllyasviel/fooocus:latest。
其中 -d 表示后台运行,--name fooocus 用于指定容器名称,便于后续管理;--gpus all 表示允许容器使用全部显卡;-p 7865:7865 表示把宿主机 7865 端口映射到容器内 7865 端口;-v 是目录挂载,用于把数据保存到宿主机;--restart unless-stopped 表示服务异常退出或主机重启后自动恢复。
启动后执行 docker logs -f fooocus 查看日志。看到服务监听地址后,在浏览器访问 https://服务器IP:7865。如果是在本机部署,可访问 https://127.0.0.1:7865。首次运行通常会检查模型文件,若镜像不内置模型,工具可能会在启动或首次生成时下载所需文件。
Docker Compose 写法:更适合长期维护
如果需要长期运行,建议使用 Docker Compose 管理。可在 /data/fooocus/docker-compose.yml 中配置服务名称、镜像、端口和目录挂载。Compose 的优点是参数集中,后续升级、迁移和重启更直观。常用命令包括 docker compose up -d 启动,docker compose logs -f 查看日志,docker compose down 停止并移除容器。
使用 Compose 时同样要注意镜像内部路径。不同维护者可能把程序放在 /app、/workspace 或 /content/Fooocus。如果挂载路径不对,表现通常是模型无法识别、输出文件找不到或配置无法持久保存。遇到这类问题,应先查看镜像文档,再进入容器执行 docker exec -it fooocus bash 检查目录结构。
升级、回滚与数据保护
升级前先备份配置和关键输出目录,尤其是自定义模型、提示词模板和项目成品。常规升级流程是:执行 docker pull 镜像名:标签 拉取新版本,停止旧容器,使用相同目录挂载参数重新创建容器。只要宿主机目录没有删除,模型和输出一般不会丢失。
不建议在生产环境长期使用不可控的 latest 标签。更稳妥的做法是记录当前可用版本号,例如使用固定 tag。若新版本出现兼容问题,可停止新容器,改回旧 tag 启动,实现快速回滚。升级后要重点检查三项:页面能否打开、显卡是否被识别、历史模型目录是否正常加载。
常见问题排查
1. 浏览器打不开页面:先检查容器是否运行,执行 docker ps;再检查端口是否被占用,必要时把宿主机端口改为 7866:7865;云主机还要确认安全组或防火墙是否允许访问该端口。
2. 生成速度很慢:查看日志和 nvidia-smi,确认容器是否使用 GPU。如果没有显卡信息,通常是 NVIDIA Container Toolkit 未安装或 Docker 运行参数缺少 --gpus all。
3. 模型无法加载:优先检查挂载路径和文件格式。部分模型需要放在指定子目录中,文件名不要包含异常符号。若镜像文档要求不同目录,应按文档调整,而不是照搬示例路径。
4. 输出图片找不到:检查容器内输出目录是否已映射到宿主机。可以进入容器查看程序实际写入位置,再把该位置挂载出来。若此前未挂载,容器删除后内部文件可能无法保留。
5. 权限报错:多见于宿主机目录权限不足。可检查目录所有者、Docker 运行用户和挂载参数。团队环境中建议用专门的数据目录和用户组管理,避免不同项目互相影响。
安全边界与实用建议
Fooocus 部署完成后,不建议直接暴露到公网。若确需远程访问,应放在受控网络中,并配置访问认证、反向袋里白名单或内部门户。生成图片时要尊重素材授权,不要把未获授权的商业素材、他人私密照片或敏感业务资料上传到共享环境。
模型文件也要注意来源。优先使用授权清晰、社区反馈稳定的模型,下载后做好版本记录。团队使用时建议建立模型清单,标注名称、来源、用途、授权范围和测试结论,避免后续项目交付时出现版权与合规风险。
从实践角度看,稳定运行的关键不是命令多复杂,而是把镜像、端口、数据目录和版本管理好。首次部署可以先用默认参数跑通,再逐步调整模型目录、输出路径和访问方式。只要数据目录独立、版本可回退、日志可追踪,Fooocus 的 Docker 部署就能成为可靠的 AI 绘画基础环境。
