Ubuntu20.4 docker运行stable diffusion webui

Ubuntu20.4 docker运行stable diffusion webui

    正在检查是否收录...

环境前提

系统环境ubuntu20.04

uname -a 


nvida cuda显卡驱动默认已经安装成功

nvidia-smi 

安装配置docker

upgrade系统

更新系统依赖:

apt-get upgrade 

卸载之前的Docker环境

确认是否之前安装过docker并卸载:

sudo apt-get remove docker docker-engine docker.io containerd runc 

安装相关工具并添加docker 阿里云源

#安装相关工具 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common #添加阿里云的docker GPG密钥 curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - #添加阿里镜像源 sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" #更新 sudo apt-get update 


安装docker

sudo apt-get install -y docker-ce 


启动并查看docker运行状态:

sudo systemctl restart docker sudo systemctl status docker 

5. 配置镜像加速器

注:这一部步基本可以忽略,因为没有使用国外dockerhub镜像!

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://7zk8hbh7.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 

安装配置nvidia-docker2

配置nvidia-docker2仓库

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update 

安装nvidia-docker2并重启docker服务

安装nvidia-docker2包

sudo apt-get install -y nvidia-docker2 sudo pkill -SIGHUP dockerd 


安装完成后需要重启docker:

sudo systemctl daemon-reload sudo systemctl restart docker 

运行cuda镜像验证是否安装成功

sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi 

能输出cuda相关信息安装成功:

Docker运行stable diffusion webui

登陆私有仓库并加载stable diffusion webui镜像:

注:我这里用的腾讯云的tcr的私有仓库同步的siutin/stable-diffusion-webui-docker镜像:

docker login xxxx.tencentcloudcr.com --username 'tcr$xxxx-read' --password xxxxxx docker pull xxxxx.tencentcloudcr.com/xxxx/stable-diffusion-webui-docker:latest-cuda 

已经吐槽过tcr仓库的username tcr$的方式…恩 还有我想方便绑定子账号的需求…不知道什么时候会排期:

本地宿主机创建models outputs目录

创建本地挂载目录,并chmod设置文件夹权限:

mkdir -p /data/stable-diffusion-webui-docker&&cd /data/stable-diffusion-webui-docker 
mkdir models outputs sudo chmod 775 -R models outputs 


上传或者下载models 到models目录!

启动stable-diffusion-webui实例

Docker 后台启动stable-diffusion-webui

docker run -it -d --name zhangpeng -p 7860:7860 --gpus all --network host -v /data/stable-diffusion-webui/models:/app/stable-diffusion-webui/models -v /data/stable-diffusion-webui/outputs:/app/stable-diffusion-webui/outputs --rm xxxx.tencentcloudcr.com/xxxx/stable-diffusion-webui-docker:latest-cuda bash webui.sh --share --listen 

参数说明:
-d 后台启动
-it -i 是交互 -t是分配终端
–name 实例名
-p 指定端口映射,格式为:宿主机端口:容器端口
-v 绑定一个卷
–network 网络模式 参数有host bridge
webui.sh参数
–listen --api --port xxx端口
–device-id 显卡ID
查看容器运行状态:

docker logs -f zhangpeng 


注: 由于我这里没有模型,挂载本地models空目录会报错,这里演示没有挂载dodels目录,会自动下载

web访问测试

自定义用户名密码方式:

注:先停止实例docker stop zhangpeng

docker run -it -d --name zhangpeng -p 7860:7860 --gpus all --network host -v /data/stable-diffusion-webui/models:/app/stable-diffusion-webui/models -v /data/stable-diffusion-webui/outputs:/app/stable-diffusion-webui/outputs --rm xxx.tencentcloudcr.com/xxxx/stable-diffusion-webui-docker:latest-cuda bash webui.sh --share --listen --gradio-auth zhangpeng:abc@1234 


当然了也可以docker-compose的方式启动,这里就简单跑一下了!

dockerdoccodewebwebuidiffusiontpustemurlappgpugitelostable diffusiongithublinuxsharebashwordapimmojson文件夹gradio自定义用户名
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-851.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

运行Whisper笔记(1)

上一篇

Stable Diffusion WebUI画出了黑图怎么办?这里汇总了所有解决办法

下一篇
  • 复制图片
按住ctrl可打开默认菜单