构建Docker基础镜像(ubuntu20.04+python3.9.10+pytorch-gpu-cuda11.8)

本文详细描述了如何在Ubuntu20.04基础上创建Docker镜像,安装Python3.9.10、PyTorch和CUDA11.8,以及处理相关依赖和浏览器安装。最后,指导读者如何打包镜像到ub2004py3910pytorchgpucuda118:latest版本。
部署运行你感兴趣的模型镜像


一、前置条件

1.创建 ubuntu 镜像源文件【sources.list】

内容如下

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

2.下载 python 安装包【Python-3.9.10.tgz】

访问官网下载页 https://www.python.org/downloads/release/python-3910/
下拉选择 Gzipped 包
在这里插入图片描述


二、构建方法

1.构建目录

|---baseIMG_ub2004py3910pytorchgpucuda118
		|
		|-----python
		|		|-----Python-3.9.10.tgz
		|
		|-----ubuntu
		|		|-----sources.list
		|
		|-----Dockerfile

2.创建DockerFile

#FROM python:3.9
FROM ubuntu:20.04

# 作者
MAINTAINER ps

# 工作目录
WORKDIR /baseIMG_ub2004py3910pytorchgpucuda118

# 宿主机文件复制到镜像
ADD . /baseIMG_ub2004py3910pytorchgpucuda118

# 配置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# RUN rm -f /etc/localtime
# RUN  ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone


# 更新ubuntu
RUN mv ./ubuntu/sources.list /etc/apt/sources.list
#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C
RUN apt --fix-broken -y install
RUN apt -y update
RUN apt -y upgrade


## 安装python
#RUN apt-get install python3.7


# # 安装chrome
# ## 安装依赖
# RUN apt -y install libxss1 libappindicator1 libindicator7 fonts-liberation libasound2
# RUN apt -y install libatk-bridge2.0-0 libatspi2.0-0 libcurl3-gnutls libcurl3-nss libcurl4
# RUN apt -y install libdrm2 libgbm1 libgtk-3-0 libxkbcommon0 xdg-utils wget
# RUN apt --fix-broken -y install
# # 安装浏览器
# RUN dpkg -i ./chrome/google-chrome-stable_current_amd64.deb
# # 查看版本
# RUN google-chrome --version
# # Google Chrome 101.0.4951.64
# 
# # 安装chromedriver
# # 安装unzip
# RUN apt install unzip
# # 解压
# RUN unzip ./chrome/chromedriver_linux64.zip
# # 移动并创建软连接到默认路径,后续启动selenium时就不需要指定chromedriver的路径了
# RUN mv ./chromedriver /usr/local/share/chromedriver
# RUN ln -s /usr/local/share/chromedriver /usr/bin/chromedriver




# 安装python
RUN apt -y install build-essential libbz2-dev
RUN apt -y install libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
RUN apt -y install zlib1g-dev
RUN mv ./python /usr/local/bin/python
RUN cd /usr/local/bin/python && tar -xzvf Python-3.9.10.tgz && cd Python-3.9.10 && ./configure --enable-optimizations && make && make install

# 安装pytorch-gpu-cuda11.8
RUN apt install -y libbz2-dev
# 阿里源
RUN pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
RUN python3 -m pip install -U pip setuptools wheel
RUN pip3 install apscheduler

## CPU
#RUN pip3 install torch torchvision torchaudio
# GPU
RUN pip3 install --timeout 18000 torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118


# linux下需要此步骤以防报错  ModuleNotFoundError: No module named '_bz2'
# RUN cp /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.7/lib-dynload/_bz2.cpython-37m-x86_64-linux-gnu.so



# 镜像打包命令
# docker build -t ub2004py371chm101chmdr101:latest .


3.打包镜像

docker build -t ub2004py3910pytorchgpucuda118:latest .

ps:创建镜像名为 ub2004py3910pytorchgpucuda118 标签为 latest 的镜像,从当前路径下的 DockerFile 文件打包

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

# 使用支持 CUDNN 8CUDA 基础镜像 FROM registry.d-robotics.cc/public/cuda:11.8.0-cudnn8-devel-ubuntu22.04 # 设置环境变量 ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ FLASK_APP=app.py \ FLASK_ENV=production \ DEBIAN_FRONTEND=noninteractive \ CUDA_HOME=/usr/local/cuda-11.8 \ PATH=/usr/local/cuda/bin:$PATH \ LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH # 设置为中国国内源 RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \ sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list # 安装Python 3.9和系统依赖(添加 git 以便克隆源码) RUN apt-get update && apt-get install -y --no-install-recommends \ software-properties-common \ && add-apt-repository ppa:deadsnakes/ppa \ && apt-get update \ && apt-get install -y --no-install-recommends \ python3.9 \ python3.9-dev \ python3.9-distutils \ python3-pip \ build-essential \ curl \ libx11-6 \ libxext6 \ libxrender1 \ libxtst6 \ libxi6 \ libgl1-mesa-glx \ python3-vtk9 \ libvtk9-dev \ gcc \ g++ \ cython3 \ python3-numpy \ git \ python3.9-venv \ graphviz \ && rm -rf /var/lib/apt/lists/* \ && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 \ && update-alternatives --set python3 /usr/bin/python3.9 \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python3.9 # 设置pip源为清华源 RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 创建工作目录 WORKDIR /app # 预先安装 matplotlib 及其依赖 RUN pip install --no-cache-dir \ matplotlib>=2.1.0 \ python-dateutil>=2.7 \ pillow>=8 \ packaging>=20.0 \ kiwisolver>=1.3.1 \ fonttools>=4.22.0 # 安装基础依赖 RUN pip install --no-cache-dir numpy==1.26.1 cython # 安装 pycocotools COPY deps/cocoapi /app/deps/cocoapi RUN cd /app/deps/cocoapi/PythonAPI && \ python3 setup.py build_ext install && \ cd ../.. # 复制本地 wheel 包和 requirements 文件 COPY deps/wheels/*.whl ./deps/wheels/ COPY requirements_docker.txt . # 修改安装命令,分开执行 # RUN pip install --no-cache-dir --no-deps --ignore-installed -r requirements_docker.txt RUN pip install --no-cache-dir --ignore-installed -r requirements_docker.txt # 复制项目文件 COPY . . # 确保CUDA相关库文件存在并更新库缓存 RUN ldconfig && \ ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.8 /usr/local/cuda/lib64/libcudnn.so.8 RUN python3 -m venv /opt/label-studio && \ . /opt/label-studio/bin/activate && \ pip install --no-cache-dir label-studio==1.11.0 && \ deactivate # 复制并设置启动脚本权限 COPY start_services.sh /app/ RUN chmod +x /app/start_services.sh # 暴露端口 EXPOSE 5000 8080 # 使用启动脚本 CMD ["/app/start_services.sh"] 我只想使用CPU版本,帮我改一下
06-23
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

什么都干的派森

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值