HAN&DAI

  • 首页
  • 遥感应用
  • GIS应用
  • 机器学习
  • 实用工具
  • 文章链接
  • 遥感数据集
HAN&DAI
遥感与地理信息技术交流社区
  1. 首页
  2. 实用工具
  3. 正文

如何编写Dockerfile文件构建Docker环境?

2023年8月23日 868点热度 3人点赞 0条评论

提出问题

Docker是目前封装环境的有效利器,可以在不同机器上实现环境的迁移,方便快捷。目前封装Docker环境有两种方式,一种是自己搭建环境,这一种也在前面的博文Ubuntu20.04安装Docker+深度学习框架搭建中提到过;另一种是通过Dockerfile构建,这种形式是将配置命令一行行写在Dockerfile这样的文件中,然后直接执行Dockerfile就能快速构建Docker虚拟环境。

解决方案

  1. Dokcerfile构建方式如下所示,按行输入,并保存。
    以下内容是:(1)以nvidia/cuda 11.3.1-cudnn8-devel-ubuntu20.04作为基础镜像;(2)安装anaconda3,构建python3.9为虚拟环境,同时利用pip加载requirements.txt安装相关库和conda安装相关库(例如:gdal),此外,还有一些库需要编译安装(例如:libmambapy)
    相关辅助文件需提前和Dockerfile文件放置在同一文件夹下,如下图所示。
# 使用nvidia/cuda 11.3.1-cudnn8-devel-ubuntu20.04作为基础镜像
FROM nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04

# 设置环境变量,避免交互式安装
ENV DEBIAN_FRONTEND=noninteractive

# 安装基本工具
RUN apt-get update && \
    apt-get install -y sudo vim wget

# 下载并安装Anaconda3
RUN wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh && \
    sh Anaconda3-2023.03-1-Linux-x86_64.sh -b -p /opt/anaconda3 && \
    rm Anaconda3-2023.03-1-Linux-x86_64.sh

# 将Anaconda3添加到环境变量
ENV PATH="/opt/anaconda3/bin:$PATH"

# 创建一个新的conda环境并安装Python 3.9.17
RUN conda create -n myenv python=3.9.17 && \
    echo "source activate myenv" > ~/.bashrc

# 激活新的conda环境
SHELL ["conda", "run", "-n", "myenv", "/bin/bash", "-c"]

# 安装指定的Python库
COPY requirements.txt /tmp/requirements.txt

# 使用脚本捕获 pip 安装错误并输出
RUN while read requirement; do pip install --no-cache-dir "$requirement" || echo "Failed to install $requirement"; done < /tmp/requirements.txt

# 安装pytorch相关
RUN pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

# 创建工作目录
WORKDIR /app

# 复制 libmambapy 文件夹到容器中
COPY mamba-micromamba-1.4.9 /app/mamba-micromamba-1.4.9

# 在 libmambapy 目录中运行安装脚本
RUN cd /app/mamba-micromamba-1.4.9/libmambapy && \
    python setup.py build && \
    python setup.py install

# 使用 conda 安装 gdal
RUN conda install -y gdal==3.6.2

# 使用 conda 安装 pyinterp
RUN conda install -c "conda-forge/label/cf202003" pyinterp

# 在启动容器时自动激活conda环境
CMD ["conda", "run", "-n", "myenv", "bash"]
  1. 以上内容撰写好之后,切换到Dockerfile文件夹下,执行以下命令,构建镜像。
    # my_custom_cuda_image为镜像名,可以自己设置
    docker build -t my_custom_cuda_image .

    以下是镜像构建过程截图:

  2. 利用制作的镜像,即可构建容器,以下给出简单命令
    docker run --gpus all -it my_custom_cuda_image
Post Views: 643

相关文章:

  1. 遥感专用深度学习框架LuoJiaNet系列学习(1)---源码安装
  2. Google Colab中摒弃了TF 1.X,怎么重装?
  3. cuda 11.x如何配置tensorflow 1.x?(以3090为例)
  4. labelme等标注软件多分类(二分类)json文件转mask(可rgb显示或one-hot显示)
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 实用技巧 机器学习
最后更新:2023年9月1日

HAN&DAI

RS和GIS研究兴趣者,永远在学习的路上!

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

文章目录
  • 提出问题
  • 解决方案
浏览最多的文章
  • BUG:ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (1,462)
  • BUG:“ModuleNotFoundError: No module named '_ext'”的解决方案 (1,229)
  • 利用GEE下载指定区域Landsat8影像 (1,175)
  • 利用arcgis制作深度学习标签数据(以二分类为例) (899)
  • 利用传统机器学习方法进行遥感影像分类-以随机森林(RF)为例 (805)

COPYRIGHT © 2025 HAN&DAI. ALL RIGHTS RESERVED. QQ交流群:821388027

Theme Kratos Made By Seaton Jiang