ubuntu系统dockerfile创建深度学习环境

dockerfile创建深度学习环境ubuntu

1.新建dockerfile

touch dockerfile
vim dockerfile

在这里插入图片描述

ARG CUDA_VERSION
FROM nvidia/cuda:${CUDA_VERSION}-cudnn7-devel-ubuntu16.04

ENV TZ=Asia/Shanghai
apt-get update \
    && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
    && apt-get install tzdata
ENV DEBIAN_FRONTEND=noninteractive

RUN sed -i "s@/archive.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g" /etc/apt/sources.list \
    && rm -Rf /var/lib/apt/lists/* \
    && apt-get update && apt-get install -y software-properties-common

RUN add-apt-repository ppa:ubuntugis/ppa && \
    apt-get update && \
    apt-get install -y wget=1.* git=1:2.* python-protobuf=2.* python3-tk=3.* \
                       jq=1.5* \
                       build-essential libsqlite3-dev=3.11.* zlib1g-dev=1:1.2.* \
                       libopencv-dev=2.4.* python-opencv=2.4.* unzip curl && \
    apt-get autoremove && apt-get autoclean && apt-get clean

# See https://github.com/mapbox/rasterio/issues/1289
ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt

# Install Python 3.6
RUN wget -q -O ~/miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-4.7.12.1-Linux-x86_64.sh && \
     chmod +x ~/miniconda.sh && \
     ~/miniconda.sh -b -p /opt/conda && \
     rm ~/miniconda.sh
ENV PATH /opt/conda/bin:$PATH
ENV LD_LIBRARY_PATH /opt/conda/lib/:$LD_LIBRARY_PATH
RUN conda install -y python=3.6
RUN python -m pip install --upgrade pip

CMD ["bash"]

2.创建镜像

docker build -t rv:v1 .

在这里插入图片描述

Step 7/57 : RUN add-apt-repository ppa:ubuntugis/ppa &&     apt-get update &&     apt-get install -y wget=1.* git=1:2.* python-protobuf=2.* python3-tk=3.*                        jq=1.5*                        build-essential libsqlite3-dev=3.11.* zlib1g-dev=1:1.2.*                        libopencv-dev=2.4.* python-opencv=4.0.* unzip curl &&     apt-get autoremove && apt-get autoclean && apt-get clean
 ---> Running in 11b6b89fd18f
 Official stable UbuntuGIS packages.

 More info: https://launchpad.net/~ubuntugis/+archive/ubuntu/ppa
Error: retrieving gpg key timed out.
The command '/bin/sh -c add-apt-repository ppa:ubuntugis/ppa &&     apt-get update &&     apt-get install -y wget=1.* git=1:2.* python-protobuf=2.* python3-tk=3.*                        jq=1.5*                        build-essential libsqlite3-dev=3.11.* zlib1g-dev=1:1.2.*                        libopencv-dev=2.4.* python-opencv=4.0.* unzip curl &&     apt-get autoremove && apt-get autoclean && apt-get clean' returned a non-zero code: 1

在这里插入图片描述

E: Failed to fetch http://ppa.launchpad.net/ubuntugis/ppa/ubuntu/pool/main/p/proj/proj-bin_7.2.1-1~focal0_amd64.deb  Unable to connect to ppa.launchpad.net:http: [IP: 91.189.95.85 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

网络问题 vim /etc/resolv.conf

添加:
nameserver 8.8.8.8
nameserver 223.5.5.5
nameserver 223.6.6.6

tzdata选择时区 交互问题

# 添加环境变量
ENV DEBIAN_FRONTEND=noninteractive

添加tsinghua source

RUN sed -i "s@/archive.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g" /etc/apt/sources.list \
    && rm -Rf /var/lib/apt/lists/* \
    && apt-get update
Step 14/54 : COPY ./requirements-dev.txt /opt/src/requirements-dev.txt
COPY failed: file not found in build context or excluded by .dockerignore: stat requirements-dev.txt: file does not exist

文件不在当前路径下

3.查看镜像并建立容器

docker images
docker run --name rv01 /bin/bash
docker attach rv01
docker exec -it rv01 /bin/bash
docker run --runtime=nvidia --name rv01 -dit --gpus all -v \
/home/zju/raster/data:/opt/src/data -v /home/zju/raster/code:/opt/src/code -v \
/home/zju/raster/output:/opt/data/output quay.io/azavea/raster-vision:pytorch-0.13.1 /bin/bash

3090TMD
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
CUDA10.2 和11.4都有??

Traceback (most recent call last):
  File "code/test.py", line 39, in <module>
    out = model(image_tensor)
  File "/opt/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "/opt/conda/lib/python3.7/site-packages/torchvision/models/resnet.py", line 249, in forward
    return self._forward_impl(x)
  File "/opt/conda/lib/python3.7/site-packages/torchvision/models/resnet.py", line 233, in _forward_impl
    x = self.bn1(x)
  File "/opt/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "/opt/conda/lib/python3.7/site-packages/torch/nn/modules/batchnorm.py", line 147, in forward
    self.num_batches_tracked = self.num_batches_tracked + 1  # type: ignore[has-type]

RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
#cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#cuda
apt install nvidia-cuda-toolkit
https://developer.nvidia.com/cuda-toolkit-archive
cd /usr/local/cuda-10.2/bin/
rm -rf /usr/local/cuda-10.2
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run
chmod +x cuda_11.4.0_470.42.01_linux.run
./cuda_11.4.0_470.42.01_linux.run
import torch
from torchvision import models
import numpy as np

print(torch.__version__)
print(torch.cuda.is_available())
print(torch.version.cuda)
print(torch.backends.cudnn.version())
print(torch.cuda.get_arch_list())
print(torch.cuda.get_device_name(0), '\n')

image = np.random.random(size=[2, 3, 224, 224])
image.dtype = 'float32'
image_tensor = torch.from_numpy(image).cuda()
model = models.resnet50(pretrained=True)
model = model.cuda()
out = model(image_tensor)
print(out)


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yddcs

你的鼓励--创作的动力!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值