(1)docker 版本
https://github.com/NVIDIA/nvidia-docker
CentOS 7.X/8.X (docker-ce), RHEL 7.X/8.X (docker-ce), Amazon Linux 1/2
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install -y nvidia-container-toolkit
sudo systemctl restart docker
针对 19.03之前 的docker版本:(其实大多数都低于这个版本啊)
Upgrading with nvidia-docker2 (Deprecated)
sudo yum upgrade -y nvidia-docker2
sudo systemctl restart docker
(2)成熟的docker版本
https://hub.docker.com/r/nvidia/cuda
根据这里的dockerfile文件,可以很容易构建成熟的版本;但是centos7的官方版本,却在这里没有提供 。虽然有dockerfile文件,但是在执行的时候,却会报没有这个版本:
但是,我们可以在tags页面找到我们想要的:
nvidia-docker run --name=cuda -itd nvidia/cuda:10.1-devel-centos7
跑了这个后,我们可以在里面nvidia-smi查到相应的GPU信息。
(3)测试下测试GPU的程序
还可以运行测试程序
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 不显示等级2以下的提示信息
print('GPU', tf.test.is_gpu_available())
a = tf.constant(2.0)
b = tf.constant(4.0)
print(a + b)
(4) 增加insight-face所需要的模块:
暂时使用anaconda来增加。
在deploy ,src 拷进容器后进行运行的尝试,进行总结后,需要安装的模块:
conda install tensorflow-gpu
conda install mxnet-gpu
conda install -c conda-forge opencv
conda install -c anaconda scikit-learn
conda install easydict -c conda-forge
conda install scikit-image
conda install flask
(5)保存镜像:
docker commit -a 'dualven' -m 'insight-face env' cuda dualvenregistry:5000/cuda10.1-centos7-insight:v1
oh ,mygod ,太大了;进去分析 ,主要是安装的lib,及so太大了。 很多。
(6) 新建insigh-face dockerfile
FROM dualvenregistry:5000/cuda10.1-centos7-insight:v1
ENV PATH /root/anaconda3/bin:/root/anaconda3/condabin:$PATH
RUN mkdir /app
WORKDIR /app
COPY ./src /app/src
COPY ./start.sh /app/
ENTRYPOINT [ "/app/start.sh" ]
下面是start.sh
#!/bin/bash 这个必须
echo $PATH
source activate 这个不激活,conda activate dualven3.6也没法用。
conda deactivate
conda activate dualven3.6
python src/api/app.py
建立版本:dualvenregistry:5000/in-face:v1
docker build -t dualvenregistry:5000/in-face:v1 .
(7) 运行镜像,形成实例 in-face-1
nvidia-docker run -itd --name=in-face-1 -v /data/test/cuda/start.sh:/app/start.sh -v /data/test/cuda/src:/app/src -p 18080:18080 dualvenregistry:5000/in-face:v1
GPU已经在用
(8) 测试下:用的时长还是很长。
来源:oschina
链接:https://my.oschina.net/u/4365667/blog/4504066