【傻瓜式教程】docker运行facechain

首选,为了防止后期docker满,Docker容器 - 启动报错:No space left on device,更换一下docker存储位置

1、停止Docker服务
首先停止Docker守护进程,可以使用以下命令:

sudo systemctl stop docker
备份现有的Docker数据:在进行目录更改之前,建议你备份当前Docker的数据,以防止意外数据丢失。

2、创建新的存储目录,这个盘有28TB,足够了
使用以下命令在/home目录下创建一个名为docker的新目录:

sudo mkdir /media/cys/c4e58bbe-a73a-4b02-ae9e-2b310ee884fb/docker
3、编辑Docker配置文件
修改Docker的启动配置文件/etc/docker/daemon.json,如果文件不存在则创建该文件。在文件中添加以下内容(如果文件已存在,则添加"data-root"一行即可):

{
    "data-root": "/media/cys/c4e58bbe-a73a-4b02-ae9e-2b310ee884fb/docker"
}
4、启动Docker服务
保存并关闭编辑器后,启动Docker服务以应用更改:

sudo systemctl start docker
5、验证更改
运行以下命令验证Docker的数据存储目录是否已经更改:

docker info | grep "Docker Root Dir"
【傻瓜式教程】docker运行facechain_第1张图片
   然后按照教程一步步来,

GitHub - modelscope/facechain: FaceChain is a deep-learning toolchain for generating your Digital-Twin.     

1.需要docker支持GPU

sudo docker run --help | grep -i gpus | wc -L
# run the second instruction only if the output of the first instruction is equal to 0
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list 
sudo apt update
sudo apt install -y nvidia-docker2
sudo systemctl restart docker
sudo docker run -it --rm --gpus all ubuntu nvidia-smi

  最后一句话不用执行

2.# For China Mainland users:我们执行:

docker pull registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.8.0-py38-torch2.0.1-tf2.13.0-1.9.4

3.这一步官方是这个命令,但这种情况智能gradio产生外链进行访问,无法访问docker内的127.0.0.1

# Step3: run the docker container
docker run -it --name facechain -p 7860:7860 --gpus all registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.8.0-py38-torch2.0.1-tf2.13.0-1.9.4 /bin/bash

 如果要本地也能访问127.0.0.1:7860,要执行如下代码:

docker run -it --name facechain --network host -p 7860:7860 --gpus all registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.8.0-py38-torch2.0.1-tf2.13.0-1.9.4 /bin/bash

【傻瓜式教程】docker运行facechain_第2张图片

 这一步如果说已经存在facechain容器,那就docker ps -a看看,存在的话,

那就docker close facechain

docker rm facechain,然后再执行一下step3

或者systemctl restart docker,需要稍微等等

4.进到docker里,执行

# Step4: Install the gradio in the docker container:
pip3 install gradio==3.50.2
pip3 install controlnet_aux==0.0.6
pip3 install python-slugify
pip3 install onnxruntime==1.15.1
pip3 install edge-tts
pip3 install modelscope==1.10.0

# Step5 clone facechain from github
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/modelscope/facechain.git --depth 1
cd facechain
CUDA_VISIBLE_DEVICES=0 python3 app.py

 CUDA_VISIBLE_DEVICES=0 python3 app.py

不知道为什么,使用python3 app.py程序一开始是起得来的,但是之后训练汇报训练失败的错误,然后就会显示在四张卡上都错误,可能是我过程中 CUDA_VISIBLE_DEVICES=0,1,2,3了,但是后面我清空掉docker,按理说不该默认四卡调的,后面看到有说法这LDM主要是循环迭代耗时,放多卡意义不大,所以还是单卡了。这个错误排查了一个晚上和一个上午才搞定

使用 CUDA_VISIBLE_DEVICES=0 python3 app.py是没有问题的!

 会报没有share link,缺文件,下载一下

【傻瓜式教程】docker运行facechain_第3张图片【傻瓜式教程】docker运行facechain_第4张图片

下载一下frpc_linux_amd64,改名字为frpc_linux_amd64_v0.2,

然后docker cp frpc_linux_amd64_v0.2  :/opt/conda/lib/python3.8/site-packages/gradio,

还需要赋权限:chmod +x /opt/conda/lib/python3.8/site-packages/gradio/frpc_linux_amd64_v0.2 

  【傻瓜式教程】docker运行facechain_第5张图片           【傻瓜式教程】docker运行facechain_第6张图片

 【傻瓜式教程】docker运行facechain_第7张图片

你可能感兴趣的:(docker,eureka,容器)