跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Stable Diffusion WebUI Docker 环境搭建指南

基于 Docker 和 Miniconda 部署 Stable Diffusion WebUI 的完整流程。通过自定义镜像实现环境隔离与依赖管理,集成 GPU 支持、SSH 远程登录及 Jupyter 调试功能。涵盖 PyTorch 安装、xformers 配置、模型持久化挂载及生产级稳定性建议,解决 CUDA 兼容性与显存占用问题,提供可复用的 AI 开发环境方案。

GitMaster发布于 2026/4/5更新于 2026/5/2333 浏览

Stable Diffusion WebUI Docker 环境搭建指南

在生成式 AI 飙速发展的今天,越来越多开发者希望在本地部署 Stable Diffusion WebUI —— 这个功能强大、插件丰富、社区活跃的文生图工具。但随之而来的环境依赖复杂、Python 版本冲突、CUDA 兼容性问题常常让人头疼。

有没有一种方式,既能保证环境干净隔离,又能一键复现、快速迁移?答案是:Docker + Miniconda 的组合拳。

我们不需要每次都从头配置 Python 环境、手动安装 PyTorch 和 xformers,也不用担心某次 pip install 搞乱整个系统。通过容器化技术,把整套运行环境'打包'起来,无论换哪台机器,只要拉镜像、跑容器,几分钟就能恢复工作流。

本文将带你一步步构建一个基于 Miniconda-Python3.10 的轻量级 Docker 镜像,集成 GPU 支持、SSH 远程登录、Jupyter 调试能力,并成功运行 AUTOMATIC1111 的 Stable Diffusion WebUI。整个过程强调可维护性、性能优化和实际工程中的常见避坑点。

为什么选择 Miniconda + Docker?

你可能会问:为什么不直接用官方 Python 镜像?或者直接跑原生环境?

关键在于三点:

  • 精准控制依赖版本:Stable Diffusion 对 PyTorch、xformers、CLIP 等库有强版本绑定要求,conda 更擅长处理复杂的二进制依赖。
  • 更小的体积与更快的启动速度:相比 Anaconda,Miniconda 只包含核心组件,适合做基础镜像。
  • 多环境隔离能力:你可以同时拥有 py38-torch113 和 py310-torch210 两个独立环境,互不干扰。

再加上 Docker 提供的资源隔离、端口映射、持久化挂载等能力,这套方案特别适合用于训练、推理或二次开发场景。

构建你的专属镜像

我们不会直接使用 continuumio/miniconda3 官方镜像开干,而是自定义一个更适合 AI 开发的镜像。先创建 Dockerfile:

FROM continuumio/miniconda3
LABEL maintainer="[email protected]"
# 升级系统并安装常用工具
RUN apt-get update && apt-get install -y \
    wget \
    vim \
    git \
    curl \
    unzip \
    build-essential \
    openssh-server \
    libgl1-mesa-glx \
    && rm -rf /var/lib/apt/lists/*
# 创建工作目录
WORKDIR /workspace
# 创建非 root 用户(推荐做法)
RUN useradd -m -s /bin/bash sduser && \
    echo 'sduser:sduser' | chpasswd && \
    adduser sduser sudo
# 设置权限:允许写入 .bashrc
USER sduser
WORKDIR /home/sduser
# 安装 Miniconda 并切换至 Python 3.10
ENV CONDA_ENV=py310
SHELL ["/bin/bash", "-c"]
RUN conda create -n ${CONDA_ENV} python=3.10 && \
    echo "source activate " >> ~/.bashrc

SHELL [, , , , , ]

RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main && \
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free && \
    conda config  show_channel_urls  && \
    pip config  global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

EXPOSE 7860 8888 22

USER root

COPY entrypoint.sh /entrypoint.sh
RUN  +x /entrypoint.sh
CMD []
${CONDA_ENV}
# 切换到新环境执行后续命令
"conda"
"run"
"-n"
"py310"
"/bin/bash"
"-c"
# 配置国内镜像源加速
set
yes
set
# 暴露端口:WebUI 默认 7860,Jupyter 8888,SSH 22
# 回到 root 执行系统服务操作
# 复制启动脚本
chmod
"/entrypoint.sh"

配套的 entrypoint.sh 脚本如下:

#!/bin/bash
# 启动 SSH 服务
service ssh start
# 激活 conda 环境
eval "$(conda shell.bash hook)"
conda activate py310
# 如果传入命令,则执行;否则保持容器运行
if [ $# -gt 0 ]; then
    exec "$@"
else
    while true; do
        sleep 1000
    done
fi

小贴士:这里使用 eval "$(conda shell.bash hook)" 是为了正确加载 conda 命令环境,避免 command not found: conda 错误。

构建镜像:

docker build -t miniconda-py310-sd:latest .

耐心等待完成后,你就拥有了一个集成了 Conda、Python 3.10、国内源加速、SSH 支持的基础开发镜像。

启动容器:带上 GPU 和数据卷

接下来就是最关键的一步:启动容器。我们需要确保 GPU 可用、内存足够、代码和模型可持久化。

docker run -dit \
    --name sd-webui \
    --gpus all \
    --shm-size=8gb \
    -p 7860:7860 \
    -p 8888:8888 \
    -p 2222:22 \
    -v $(pwd)/stable-diffusion-webui:/workspace/stable-diffusion-webui \
    -v /mnt/data/models:/workspace/models \
    miniconda-py310-sd:latest

参数说明:

  • --gpus all:启用所有可用 GPU(需提前安装 NVIDIA Container Toolkit)
  • --shm-size=8gb:增大共享内存,防止多线程加载图像时出现 OOM
  • -p:分别映射 WebUI、Jupyter 和 SSH 端口
  • -v:挂载项目代码和模型目录,实现数据持久化

进入容器:

docker exec -it sd-webui bash

你应该会看到类似提示符:

(py310) root@container-id:/workspace#

说明 conda 环境已自动激活,可以开始安装依赖了。

部署 Stable Diffusion WebUI

1. 克隆项目
cd /workspace
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui

建议固定某个稳定提交版本,避免因主干更新导致兼容性问题:

git checkout <commit-hash>
2. 安装关键依赖
(1)PyTorch with CUDA 支持

这是最容易出错的一环。务必根据宿主机 CUDA 版本选择正确的安装命令。

查看宿主机 CUDA 版本:

nvidia-smi

假设输出显示 CUDA Version: 11.8,则安装对应版本:

pip install torch==2.1.0+cu118 torchvision==0.16.0+cu118 torchaudio==2.1.0 --extra-index-url https://download.pytorch.org/whl/cu118

验证是否可用 GPU:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

预期输出:

2.1.0+cu118 True

⚠️ 注意:不要盲目 pip install torch,这会安装 CPU 版本!

(2)安装 CLIP 与 OpenCLIP
pip install git+https://github.com/openai/CLIP.git@main
pip install open-clip-torch

OpenCLIP 支持更多模型变体,如 ViT-bigG,对高级用户很有用。

(3)人脸修复模块 GFPGAN
pip install gfpgan

如果需要从源码编译(例如支持最新特性),可手动克隆安装:

git clone https://github.com/TencentARC/GFPGAN.git
cd GFPGAN
pip install -r requirements.txt
python setup.py develop
(4)其他必要依赖
pip install -r requirements.txt
pip install opencv-python-headless
pip install xformers --index-url https://download.pytorch.org/whl/cu118

关于 xformers:它能显著降低显存占用并提升推理速度,尤其在高分辨率生成时效果明显。但必须确保其 CUDA 版本与 PyTorch 匹配,否则会报错。

如果你遇到 xformers 安装失败,可以尝试以下替代方案:

# 方法一:使用预编译包
pip install -U xformers --index-url https://download.pytorch.org/whl/cu118
# 方法二:关闭 xformers,在启动参数中添加 --disable-xformers

启动 WebUI 服务

一切准备就绪后,回到项目根目录:

cd /workspace/stable-diffusion-webui

使用优化后的启动命令:

COMMANDLINE_ARGS="--listen --port=7860 --enable-insecure-extension-access --no-half-vae --xformers" ./webui.sh

各参数含义:

参数作用
--listen监听 0.0.0.0,允许局域网设备访问
--port=7860自定义端口(默认也是 7860)
--enable-insecure-extension-access启用第三方插件(如 ControlNet)
--no-half-vae避免部分老旧显卡在 VAE 解码时崩溃
--xformers启用注意力机制优化,节省显存

首次运行会自动下载基础配置文件(如 config.yaml)和安全检查模型(model.safetensors)。如果你已经准备好模型,建议提前放入:

/workspace/models/Stable-diffusion/

这样可以跳过漫长的网络下载过程。

启动成功后,浏览器访问:

http://<your-server-ip>:7860

你应该能看到熟悉的 WebUI 界面,包括:

  • 文生图(txt2img)
  • 图生图(img2img)
  • 局部重绘(Inpaint)
  • 模型管理
  • 插件中心

调试利器:Jupyter 与 SSH

虽然 WebUI 已经很强大,但在做模型微调、数据处理或实验探索时,交互式编程仍然不可替代。

Jupyter Notebook 使用方式

在容器内安装 Jupyter:

pip install jupyter

生成配置文件:

jupyter notebook --generate-config

设置密码(推荐):

python -c "from notebook.auth import passwd; print(passwd())"

复制输出的哈希值,编辑配置文件:

vim ~/.jupyter/jupyter_notebook_config.py

添加以下内容:

c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port = 8888
c.NotebookApp.open_browser = False
c.NotebookApp.allow_remote_access = True
c.NotebookApp.password = 'sha1:xxxxxxx' # 替换为你生成的密码哈希
c.NotebookApp.notebook_dir = '/workspace'

启动服务:

jupyter notebook --allow-root

访问地址:http://<your-server-ip>:8888

此时你可以在浏览器中新建 .ipynb 文件,测试 GPU 是否可用:

import torch
print(torch.cuda.is_available())
print(torch.randn(1000, 1000).cuda().sum()) # 应正常输出
SSH 登录:长期维护更方便

对于服务器部署或团队协作,SSH 是比 docker exec 更优雅的选择。

我们在 Dockerfile 中已经安装了 openssh-server,只需确保服务启动即可。

修改 /etc/ssh/sshd_config:

sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config

设置密码:

echo 'root:mypassword' | chpasswd

然后在 entrypoint.sh 中确保 service ssh start 被调用。

之后即可从外部连接:

ssh root@<server-ip> -p 2222

这样即使断开终端,容器内的进程依然运行,非常适合长时间训练任务。

生产级建议:稳定性与可维护性

1. 模型存储分离

强烈建议将模型目录单独挂载到高速 SSD 或 NAS 存储上:

-v /data/sd-models:/workspace/models

并在 WebUI 设置中指定路径:

Settings → Stable Diffusion → Checkpoint name → Browse Models

这样做有两个好处:

  • 模型不随容器销毁而丢失
  • 多个容器可共享同一组模型,节省空间
2. 使用 .env 管理环境变量

在项目根目录创建 .env 文件:

CUDA_VISIBLE_DEVICES=0
TORCH_CUDA_ARCH_LIST="8.6"
SD_WEBUI_LOG_LEVEL=INFO

然后在启动脚本中加载:

set -a
[ -f .env ] && source .env
set +a

这些变量会影响 PyTorch 编译行为和日志输出级别,对调试非常有用。

3. 自动备份与迁移

定期提交容器为新镜像,防止意外损坏:

docker commit sd-webui sd-webui:backup-$(date +%Y%m%d)

导出镜像便于跨机迁移:

docker save -o sd-webui-backup.tar sd-webui:latest
scp sd-webui-backup.tar user@remote:/backup/
# 在目标机器导入
docker load -i sd-webui-backup.tar

当然,更现代的做法是结合 Kubernetes 或 CI/CD 流水线实现自动化部署,但这超出了本文范围。

常见问题与解决方案

问题原因解决方法
CUDA out of memory显存不足添加 --medvram 或 --lowvram 参数
ImportError: libgl.so.1缺少 OpenCV 图形依赖安装 libgl1-mesa-glx:apt-get install -y libgl1-mesa-glx
WebUI 无法外网访问未监听 0.0.0.0确保启动时加 --listen
xformers 安装失败CUDA 版本不匹配使用 --index-url 指定对应版本
模型加载慢网络模型或机械硬盘提前下载模型至本地 SSD 目录

还有一个隐藏陷阱:Python 版本太高会导致某些旧插件不兼容。目前最稳妥的是锁定在 Python 3.10,避免升级到 3.11 或更高。

总结

通过 Docker + Miniconda 的组合,我们实现了:

✅ 环境完全隔离
✅ 依赖精确可控
✅ GPU 支持开箱即用
✅ 支持 Jupyter 和 SSH 远程调试
✅ 数据持久化与快速迁移

这一架构不仅适用于个人开发者本地测试,也完全可以作为团队共享的 AI 开发平台基础模板。未来还可以进一步扩展:

  • 添加 HTTPS 反向代理(Nginx + Let's Encrypt)
  • 集成 MinIO 实现模型版本管理
  • 结合 Redis + Celery 构建异步任务队列
  • 使用 Prometheus + Grafana 监控 GPU 使用率

⚠️ 最后提醒一句:请合法合规使用生成模型,切勿生成违法不良信息。

现在,你已经有了一个稳定、高效、可复用的 Stable Diffusion 开发环境。下一步,不妨试试接入 ControlNet、训练 LoRA 模型,或是打造自己的 AI 绘画工作流。

生成式 AI 的大门,已经为你敞开。

目录

  1. Stable Diffusion WebUI Docker 环境搭建指南
  2. 为什么选择 Miniconda + Docker?
  3. 构建你的专属镜像
  4. 升级系统并安装常用工具
  5. 创建工作目录
  6. 创建非 root 用户(推荐做法)
  7. 设置权限:允许写入 .bashrc
  8. 安装 Miniconda 并切换至 Python 3.10
  9. 切换到新环境执行后续命令
  10. 配置国内镜像源加速
  11. 暴露端口:WebUI 默认 7860,Jupyter 8888,SSH 22
  12. 回到 root 执行系统服务操作
  13. 复制启动脚本
  14. 启动 SSH 服务
  15. 激活 conda 环境
  16. 如果传入命令,则执行;否则保持容器运行
  17. 启动容器:带上 GPU 和数据卷
  18. 部署 Stable Diffusion WebUI
  19. 1. 克隆项目
  20. 2. 安装关键依赖
  21. (1)PyTorch with CUDA 支持
  22. (2)安装 CLIP 与 OpenCLIP
  23. (3)人脸修复模块 GFPGAN
  24. (4)其他必要依赖
  25. 方法一:使用预编译包
  26. 方法二:关闭 xformers,在启动参数中添加 --disable-xformers
  27. 启动 WebUI 服务
  28. 调试利器:Jupyter 与 SSH
  29. Jupyter Notebook 使用方式
  30. SSH 登录:长期维护更方便
  31. 生产级建议:稳定性与可维护性
  32. 1. 模型存储分离
  33. 2. 使用 .env 管理环境变量
  34. 3. 自动备份与迁移
  35. 在目标机器导入
  36. 常见问题与解决方案
  37. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • MySQL 环境配置实战:CentOS 与 Ubuntu 双系统安装指南
  • Trae MCP 搭建天气系统及 AI Excel 数据处理工具实战
  • C++ 技巧:明确拒绝编译器自动生成的拷贝函数
  • LightGlue ONNX C++ 推理实践
  • 阿里通义 Z-Image-Turbo 免费额度使用与 AI 绘画技巧
  • AI 大模型 RAG 技术详解:原理与实战应用
  • Stable Diffusion v1.5 GPU 算力成本分析:单图推理耗时与电费测算
  • Stable Diffusion v1.5 模型 GPU 算力成本分析:单图推理耗时与电费测算
  • 飞书机器人搭建指南:基于 Webhook 实现高效消息推送
  • 从零搭建支持 ChatGPT 等多平台的 GEO 监控系统
  • MySQL 8.0 安装与 Workbench 配置实战指南
  • Linux 下集成 OpenClaw 至 QQ 机器人
  • SmolVLA 多场景落地:太空机器人舱内维护任务的动作规划适配
  • Whisper-CTranslate2 高效语音识别与翻译工具详解
  • Llama-Factory微调的跨平台支持:如何在多种操作系统上运行
  • 使用 Docker 部署 OpenClaw 实践
  • 字节跳动豆包系列深度拆解:国民级全模态 AI 的普惠化路径
  • ARIS 开源:基于 Claude Code 的全自动科研与论文工作流
  • C++ STL 核心基础:迭代器、auto 与范围循环
  • Ubuntu 22.04 安装 Visual Studio Code 教程

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online