参考文章
https://www.zhihu.com/search?type=content&q=Docker%EF%BC%8C%E6%95%91%E4%BD%A0%E4%BA%8E%E3%80%8C%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E3%80%8D%E7%9A%84%E8%8B%A6%E6%B5%B7
https://blog.csdn.net/zhouchen1998/article/details/110679750
https://docs.docker.com/engine/install/centos/
因为原本的docker不支持GPU加速,所以NVIDIA单独做了一个docker,来让docker镜像可以使用NVIDIA的gpu
github链接:https://github.com/NVIDIA/nvidia-docker
安装文档:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
https://www.cnblogs.com/bigberg/p/8057807.html
cd /etc/systemd/system/multi-user.target.wants
vim docker.service
ExecStart=/usr/bin/dockerd --graph=/data/docker --storage-driver=overlay --registry-mirror=https://jxus37ad.mirror.aliyuncs.com
–graph=/data/docker:docker新的存储位置
–storage-driver=overlay : 当前docker所使用的存储驱动
重启docker
systemctl daemon-reload
systemctl restart docker
docker info
https://hub.docker.com/r/pytorch/pytorch/tags?page=1&ordering=last_updated&name=10.1
xx代表镜像名
xx_xx代表入库函数
docker build -t xx:1.0.0 .
FROM pytorch/pytorch:1.6.0-cuda10.1-cudnn7-runtime
COPY . /deploy
WORKDIR /deploy
RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
&& apt-get clean \
&& apt-get update \
&& pip config set global.index-url https://mirror.baidu.com/pypi/simple \
&& pip install --upgrade setuptools \
&& pip install --upgrade pip \
&& pip install -r requirements.txt
EXPOSE 9535
ENTRYPOINT ["gunicorn", "-c", "gunicorn_cfg.py", "xx_xx:app"]
xxx代表容器名,xx代表镜像名
docker run --gpus all --name xxx --net host -d xx:1.0.0
docker exec -it xxx /bin/bash
nvidia-smi
如果不可用,有可能是其他应用占用gpu资源了
python
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
torch.cuda.is_available()
#cuda是否可用;
torch.cuda.device_count()
#返回gpu数量;
torch.cuda.get_device_name(0)
#返回gpu名字,设备索引默认从0开始;
torch.cuda.current_device()
#返回当前设备索引
直接下载即可,python都安装好了
https://hub.docker.com/r/pytorch/pytorch/tags镜像官方网站
记住需要先注册账号,下拉镜像的时候可以先登陆,防止没有权限的错误
unauthorized: authentication required
如果不可用,有可能是其他应用占用gpu资源了
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
torch.cuda.is_available()
#cuda是否可用;
torch.cuda.device_count()
#返回gpu数量;
torch.cuda.get_device_name(0)
#返回gpu名字,设备索引默认从0开始;
torch.cuda.current_device()
#返回当前设备索引