環(huán)境前提
系統(tǒng)環(huán)境ubuntu20.04
uname -a
nvida cuda顯卡驅(qū)動(dòng)默認(rèn)已經(jīng)安裝成功
nvidia-smi
安裝配置docker
upgrade系統(tǒng)
更新系統(tǒng)依賴:
apt-get upgrade
卸載之前的Docker環(huán)境
確認(rèn)是否之前安裝過(guò)docker并卸載:
sudo apt-get remove docker docker-engine docker.io containerd runc
安裝相關(guān)工具并添加docker 阿里云源
#安裝相關(guān)工具
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
啟動(dòng)并查看docker運(yùn)行狀態(tài):
sudo systemctl restart docker
sudo systemctl status docker
5. 配置鏡像加速器
注:這一部步基本可以忽略,因?yàn)闆]有使用國(guó)外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倉(cāng)庫(kù)
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服務(wù)
安裝nvidia-docker2包
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
安裝完成后需要重啟docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
運(yùn)行cuda鏡像驗(yàn)證是否安裝成功
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
能輸出cuda相關(guān)信息安裝成功:
Docker運(yùn)行stable diffusion webui
登陸私有倉(cāng)庫(kù)并加載stable diffusion webui鏡像:
注:我這里用的騰訊云的tcr的私有倉(cāng)庫(kù)同步的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
已經(jīng)吐槽過(guò)tcr倉(cāng)庫(kù)的username tcr$的方式…恩 還有我想方便綁定子賬號(hào)的需求…不知道什么時(shí)候會(huì)排期:
本地宿主機(jī)創(chuàng)建models outputs目錄
創(chuàng)建本地掛載目錄,并chmod設(shè)置文件夾權(quán)限:
mkdir -p /data/stable-diffusion-webui-docker&&cd /data/stable-diffusion-webui-docker
mkdir models outputs
sudo chmod 775 -R models outputs
上傳或者下載models 到models目錄!
啟動(dòng)stable-diffusion-webui實(shí)例
Docker 后臺(tái)啟動(dòng)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
參數(shù)說(shuō)明:
-d 后臺(tái)啟動(dòng)
-it -i 是交互 -t是分配終端
–name 實(shí)例名
-p 指定端口映射,格式為:宿主機(jī)端口:容器端口
-v 綁定一個(gè)卷
–network 網(wǎng)絡(luò)模式 參數(shù)有host bridge
webui.sh參數(shù)
–listen --api --port xxx端口
–device-id 顯卡ID
查看容器運(yùn)行狀態(tài):
docker logs -f zhangpeng
注: 由于我這里沒有模型,掛載本地models空目錄會(huì)報(bào)錯(cuò),這里演示沒有掛載dodels目錄,會(huì)自動(dòng)下載
web訪問測(cè)試
自定義用戶名密碼方式:
注:先停止實(shí)例docker stop zhangpeng文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-484710.html
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
當(dāng)然了也可以docker-compose的方式啟動(dòng),這里就簡(jiǎn)單跑一下了!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-484710.html
到了這里,關(guān)于Ubuntu20.4 docker運(yùn)行stable diffusion webui的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!