关于stable-diffusion:Ubuntu204-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的形式启动,这里就简略跑一下了!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理