首页 > 其他分享 >DOCKER配置之DOCKERFILE

DOCKER配置之DOCKERFILE

时间:2024-04-14 09:55:06浏览次数:24  
标签:RUN get 配置 apt dev && cmake DOCKER DOCKERFILE

要跑深度学习,就要有环境,要有环境就要有虚拟环境管理

一般python管理都会用ANACONDA或者MINICONDA,这个时候使用conda就直接结了,不需要再关心其他事情。

然而部分数据集Ubuntu18.04的环境实在是过于逆天(不是针对某个数据集或代码,只能说大部分数据集和代码都在18.04以及python3.8的远古环境上),所以最后还是只能用docker来进行配置

目前接触到的docker构建镜像的方法包括两类:

1、sudo docker pull:从网上直接拉取镜像,这样拉取到的镜像存放在本地,可以认为是打包成了文件存了起来。

2、sudo docker build:从本地的DOCKERFILE文件直接构建镜像。基本相当于本地直接运行终端指令来给镜像粗布配置一个环境。

下面是一个配置Matterport3DSimulator数据集的例子:

# Matterport3DSimulator
# Requires nvidia gpu with driver 396.37 or higher
 

FROM nvidia/cudagl:9.2-devel-ubuntu18.04
 
# Install cudnn
ENV CUDNN_VERSION 7.6.4.38
LABEL com.nvidia.cudnn.version="${CUDNN_VERSION}"

# 切换源
RUN sed -i "s@/archive.ubuntu.com/@/mirrors.ustc.edu.cn/@g" /etc/apt/sources.list \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean \
    && apt-get update --fix-missing -o Acquire::http::No-Cache=True

RUN apt-get install -y --no-install-recommends \
    libcudnn7=$CUDNN_VERSION-1+cuda9.2 \
libcudnn7-dev=$CUDNN_VERSION-1+cuda9.2 \
&& \
    apt-mark hold libcudnn7 && \
    rm -rf /var/lib/apt/lists/*
 

# Install a few libraries to support both EGL and OSMESA options
ENV DEBIAN_FRONTEND=noninteractive

# 切换源
RUN sed -i "s@/archive.ubuntu.com/@/mirrors.ustc.edu.cn/@g" /etc/apt/sources.list \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean \
    && apt-get update --fix-missing -o Acquire::http::No-Cache=True

RUN apt-get install -y wget doxygen curl libjsoncpp-dev libepoxy-dev libglm-dev libosmesa6 libosmesa6-dev libglew-dev libopencv-dev python-opencv python3-setuptools python3-dev python3-pip
RUN pip3 install -i https://pypi.mirrors.ustc.edu.cn/simple opencv-python==4.1.0.25 torch==1.1.0 torchvision==0.3.0 numpy==1.13.3 pandas==0.24.1 networkx==2.2
 
#install latest cmake
ADD https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.sh /cmake-3.12.2-Linux-x86_64.sh
RUN mkdir /opt/cmake
RUN sh /cmake-3.12.2-Linux-x86_64.sh --prefix=/opt/cmake --skip-license
RUN ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
RUN cmake --version

ENV PYTHONPATH=/root/mount/Matterport3DSimulator/build:$PYTHONPATH

可以看到整个镜像的配置流程大概是选取一个基底,安装依赖,最后配置环境变量。

 

其中的一些基础的操作说明如下:

1、RUN:执行拉取系统镜像本身的终端指令,是最通用的一种指令。

2、ADD:将网上的文件下载到本地,前为链接后为下载名。

3、ENV:环境变量设置。这里是设置的PYTHON库的变量所在位置。环境变量像这样最后在后方加一个$PYTHONPATH就是把以前有的环境变量也以列表的形式加进来。

 

先用这些指令,Dockerfile大概就可以派上用场了

标签:RUN,get,配置,apt,dev,&&,cmake,DOCKER,DOCKERFILE
From: https://www.cnblogs.com/thaumaturge/p/18133789

相关文章

  • 在Linux中,如何使用脚本进行系统配置和部署?
    在Linux中,使用脚本进行系统配置和部署是一种自动化和标准化环境设置的有效方法。脚本可以简化复杂的安装和配置过程,确保在多个系统或环境中的一致性。以下是使用脚本进行系统配置和部署的一般步骤:1.规划和设计在编写脚本之前,规划你需要执行的任务和步骤。确定脚本需要完成的功......
  • 万字长文深入理解Docker镜像分层原理、容器数据卷、网络通信架构(Docker系列第2章,共3章
    镜像分层的简单直观体现在执行dockerpull时,会发现多个Pullcomplete字样,就能体现分层,如果是一个文件,只会有一个Pullcomplete。dockerpullredisUsingdefaulttag:latestlatest:Pullingfromlibrary/redisa2abf6c4d29d:Alreadyexistsc7a4e4382001:Pullcomplete......
  • docker部署Prometheus+AlertManager实现邮件告警
    目录一、环境准备1、硬件准备(虚拟机)2、关闭防火墙,selinux3、所有主机安装docker二、配置Prometheus1、docker启动Prometheus三、添加监控节点1、docker启动node-exporter四、Prometheus配置node-exporter1、修改prometheus.yml配置文件五、配置Alertmanager1、docker启动Alertmana......
  • Windows中Gitlab Runner的配置:shell = "powershell"
    摘要这是在Windows中摸索GitlabRunner的第一个坑:默认的值是“pwsh”。1、网上有人说,删除这一行或者改为shell=""这样就会造成流水线无法获取到.gitlab-ci.yml中定义的变量。正确做法shell="powershell"本文在说什么?说的是toml文件,完整展示如下:concurrent=1che......
  • Jetson 开发板配置.md
    Jetson开发板配置1.虚拟界面配置https://blog.csdn.net/qq_25310669/article/details/1288611581.1安装xserver-xorgsudoapt-getinstallxserver-xorg-core-hwe-18.04sudoapt-getinstallxserver-xorg-video-dummy1.2打开配置文件vim/usr/share/X11/xorg.conf......
  • Vscode配置.md
    Vscode配置1.远程SSH配置1.1本地vscode安装Remote-SSH和RemoteX11插件1.2设置本地vscodeRemote-SSH按如下步骤打开remote-ssh设置加入如下字段比如你的服务器地址是192.168.133.111,用户名是aaaHostsdfasdf#这里可以随便取一个名字HostName192.168.133.111Fo......
  • docker常用命令收藏
    1.与docker启停关闭等相关系统命令docker-V#查看docker版本信息docker--help#查看docker命令帮助信息systemctlstartdocker.service#启动dockersystemctlstopdocker.service#停止dockersystemctlrestartdocker.service#重启dockersystemctlstatusdocke......
  • docker安装jenkins
    1.拉取Jenkins镜像1、mkdir-p/var/jenkins_home#在宿主机的"var"目录下创建一个"jenkins_home"目录,用于后面jenkins容器挂载2、chmod777/var/jenkins_home#修改jenkins目录的访问权限3、dockerpulljenkins/jenkins:lts#拉取官方jenkins镜像2.创建jenkins容器并......
  • centos7配置yum国内镜像
    1、cd到yum源文件所在位置cd/etc/yum.repos.d2、备份CentOS-Base.repo源文件mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup3、下载阿里云yum源配置文件wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/rep......
  • Docker mysql 配置文件读取失败 [Warning] World-writable config file '/etc/mysql/c
    这个警告表明MySQL正在忽略/etc/mysql/conf.d/my.cnf这个配置文件,因为它被设置为了全世界可写。这个警告是基于安全性的考虑。当配置文件被设置为全世界可写时,任何人都可以修改它,这可能会导致安全风险,因为恶意用户可以更改MySQL的配置,从而影响数据库的行为和安全性。为了......