2020-12-13 docker build for deepLearing env mxnet-cu10

docker build for deepLearing env mxnet-cu10

base image

nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04

pull image

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04
Untitled.png

run container

sudo nvidia-docker run -it --name base-10.1-cudnn7 -v /home/qy/Documents/df/:/df  05e3d30bd56a bash

update source.list

/home/qy/Documents/df/ 目錄里source.list 拷貝到容器的 /etc/apt/sources.list
執(zhí)行: apt update

# 默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 預發(fā)布軟件源,不建議啟用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

然后生成新的鏡像 nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 (原來的鏡像名一樣)

Untitled 1.png
sudo docker commit -m "add vim" -a "qyzhizi" xxxxx(容器id) xxxxx:xx(待生成的鏡像名:tag) 

all build

為了使用Dockerfile來構建封锉,為了構建的方便误趴,每次構建一點磁椒,下一次的構建在上一次的基礎上進行媳板。第一次構建從在新nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04 鏡像上浩淘,從1.0版本迭代到3.25版本咳焚。然后發(fā)現(xiàn)在中間過程中cuda的版本安裝錯了洽损。不過沒關系,在原來2.5版本上革半,從新構建得到2.5-cu10版本碑定,然后繼續(xù)構建流码,由于有之前的Dockerfile ,在2.5cu10版本上直接得到最終版本3.0-cu10.
除此之外,從1.0版本開始延刘,所有版本都以 registry.cnshanghai.aliyuncs.com/qyzhizi/dl_base
為鏡像名漫试。另外1.0版的鏡像提交到了阿里云的鏡像庫。

Untitled 2.png
Untitled 3.png

1.0

FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04

# for chinese supports
ENV LANG C.UTF-8
RUN rm -rf /var/lib/apt/lists/* \
           /etc/apt/sources.list.d/cuda.list \
           /etc/apt/sources.list.d/nvidia-ml.list && \
    apt-get update && apt-get install -y --no-install-recommends \
    curl \
    vim \
    wget \
    tmux \
    ca-certificates \
    git \
 && rm -rf /var/lib/apt/lists/*

2.2

FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04

# for chinese supports
ENV LANG C.UTF-8
RUN rm -rf /var/lib/apt/lists/* \
           /etc/apt/sources.list.d/cuda.list \
           /etc/apt/sources.list.d/nvidia-ml.list && \
    apt-get update && apt-get install -y --no-install-recommends \
    curl \
    vim \
    wget \
    tmux \
    ca-certificates \
    git \
 && rm -rf /var/lib/apt/lists/*

## Install Miniconda and Python 3.8
ENV CONDA_AUTO_UPDATE_CONDA=false
ENV HOME=/root
ENV PATH=$PATH:$HOME/miniconda/bin
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh \
&& chmod +x ~/miniconda.sh \
&& bash ~/miniconda.sh -b -p ~/miniconda \
&& rm ~/miniconda.sh \
&& conda clean -ya \
&& echo ". $HOME/miniconda/etc/profile.d/conda.sh" >> ~/.bashrc

CMD ["bash"]

2.4(2.3)

FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04

# for chinese supports
ENV LANG C.UTF-8
RUN rm -rf /var/lib/apt/lists/* \
           /etc/apt/sources.list.d/cuda.list \
           /etc/apt/sources.list.d/nvidia-ml.list && \
    apt-get update && apt-get install -y --no-install-recommends \
    curl \
    vim \
    wget \
    tmux \
    ca-certificates \
    git \
 && rm -rf /var/lib/apt/lists/*

## Install Miniconda and Python 3.8
ENV CONDA_AUTO_UPDATE_CONDA=false
ENV HOME=/root
ENV PATH=$PATH:$HOME/miniconda/bin
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh \
&& chmod +x ~/miniconda.sh \
&& bash ~/miniconda.sh -b -p ~/miniconda \
&& rm ~/miniconda.sh \
&& conda clean -ya \
&& echo ". $HOME/miniconda/etc/profile.d/conda.sh" >> ~/.bashrc

COPY . $HOME
RUN PIP_INSTALL="python -m pip --no-cache-dir install --upgrade" \ 
&& conda config --set show_channel_urls yes \
&& conda env create -f ~/environment.yml
CMD ["bash"]

environment.yml

name: gluon1
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
dependencies:
- python=3.6

2.5-cu10 (2.5)

FROM nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04

# for chinese supports
ENV LANG C.UTF-8
RUN rm -rf /var/lib/apt/lists/* \
           /etc/apt/sources.list.d/cuda.list \
           /etc/apt/sources.list.d/nvidia-ml.list && \
    apt-get update && apt-get install -y --no-install-recommends \
    curl \
    vim \
    wget \
    tmux \
    ca-certificates \
    git \
 && rm -rf /var/lib/apt/lists/*

## Install Miniconda and Python 3.8
ENV CONDA_AUTO_UPDATE_CONDA=false
ENV HOME=/root
ENV PATH=$PATH:$HOME/miniconda/bin
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh \
&& chmod +x ~/miniconda.sh \
&& bash ~/miniconda.sh -b -p ~/miniconda \
&& rm ~/miniconda.sh \
&& conda clean -ya \
&& echo ". $HOME/miniconda/etc/profile.d/conda.sh" >> ~/.bashrc

COPY . $HOME
RUN PIP_INSTALL="python -m pip --no-cache-dir install --upgrade" \ 
&& conda config --set show_channel_urls yes \
&& conda env create -f ~/environment.yml

RUN source ~/miniconda/etc/profile.d/conda.sh \
&& conda activate gluon1 \
&& pip install -r ~/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ \
&& conda clean -ya \
&& conda deactivate 

CMD ["bash"]

requirement.txt

區(qū)別:
2.5-cu10: mxnet-cu101
2.5: mxnet-cu102

mxnet-cu101
d2lzh==1.0.0
jupyter==1.0.0
matplotlib==2.2.2
pandas==0.23.4

3.0-cu10(最終版本)碘赖,在2.5-cu10的基礎上

FROM registry.cn-shanghai.aliyuncs.com/qyzhizi/dl_base:2.5-cu10

## settings
RUN mkdir ~/notebook && \
    source ~/miniconda/etc/profile.d/conda.sh && \
    conda activate gluon1 && \
    pip install https://github.com/mli/notedown/tarball/master &&\
    jupyter notebook --allow-root --generate-config && \
    echo "c.NotebookApp.contents_manager_class = \
    'notedown.NotedownContentsManager'" >>~/.jupyter/jupyter_notebook_config.py

## copy notebooks
RUN  mkdir ~/gluon-tutorials-zh
ADD . /root/gluon-tutorials-zh

CMD source ~/miniconda/etc/profile.d/conda.sh && \
    conda activate gluon1 && cd ~/gluon-tutorials-zh && \
    jupyter notebook --ip=0.0.0.0 --allow-root

3.0

FROM registry.cn-shanghai.aliyuncs.com/qyzhizi/dl_base:2.5

## setup notedown
RUN source ~/miniconda/etc/profile.d/conda.sh &&\
    conda activate gluon1 && \
    pip install https://github.com/mli/notedown/tarball/master &&\
    conda deactivate
#
## copy notebooks
#RUN  mkdir /gluon-tutorials-zh
#COPY / /gluon-tutorials-zh/
#
CMD ["bash"]
#CMD source activate gluon && cd /gluon-tutorials-zh && \
#    jupyter notebook --ip=0.0.0.0 --allow-root

3.1

FROM registry.cn-shanghai.aliyuncs.com/qyzhizi/dl_base:3.0

## settings
RUN mkdir ~/notebook && \
    source ~/miniconda/etc/profile.d/conda.sh && \
    conda activate gluon1 && \
    jupyter notebook --allow-root --generate-config && \
    echo "c.NotebookApp.contents_manager_class = \
    'notedown.NotedownContentsManager'" >>~/.jupyter/jupyter_notebook_config.py
#
## copy notebooks
#RUN  mkdir /gluon-tutorials-zh
#COPY / /gluon-tutorials-zh/
#
CMD ["bash"]
#CMD source activate gluon && cd /gluon-tutorials-zh && \
#    jupyter notebook --ip=0.0.0.0 --allow-root

3.2(3.25)

FROM registry.cn-shanghai.aliyuncs.com/qyzhizi/dl_base:3.0

## settings
RUN mkdir ~/notebook && \
    source ~/miniconda/etc/profile.d/conda.sh && \
    conda activate gluon1 && \
    jupyter notebook --allow-root --generate-config && \
    echo "c.NotebookApp.contents_manager_class = \
    'notedown.NotedownContentsManager'" >>~/.jupyter/jupyter_notebook_config.py
## copy notebooks
RUN  mkdir ~/gluon-tutorials-zh
ADD . /root/gluon-tutorials-zh

CMD source ~/miniconda/etc/profile.d/conda.sh && \
    conda activate gluon1 && cd ~/gluon-tutorials-zh && \
    jupyter notebook --ip=0.0.0.0 --allow-root
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末驾荣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子普泡,更是在濱河造成了極大的恐慌播掷,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撼班,死亡現(xiàn)場離奇詭異歧匈,居然都是意外死亡,警方通過查閱死者的電腦和手機砰嘁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門件炉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矮湘,你說我怎么就攤上這事妻率。” “怎么了板祝?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長走净。 經常有香客問我券时,道長,這世上最難降的妖魔是什么伏伯? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任橘洞,我火速辦了婚禮,結果婚禮上说搅,老公的妹妹穿的比我還像新娘炸枣。我一直安慰自己,他們只是感情好弄唧,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布适肠。 她就那樣靜靜地躺著,像睡著了一般候引。 火紅的嫁衣襯著肌膚如雪侯养。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天澄干,我揣著相機與錄音逛揩,去河邊找鬼柠傍。 笑死,一個胖子當著我的面吹牛辩稽,可吹牛的內容都是我干的惧笛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼逞泄,長吁一口氣:“原來是場噩夢啊……” “哼患整!你這毒婦竟也來了?” 一聲冷哼從身側響起炭懊,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤并级,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后侮腹,有當地人在樹林里發(fā)現(xiàn)了一具尸體嘲碧,經...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年父阻,在試婚紗的時候發(fā)現(xiàn)自己被綠了愈涩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡加矛,死狀恐怖履婉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情斟览,我是刑警寧澤毁腿,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站苛茂,受9級特大地震影響已烤,放射性物質發(fā)生泄漏。R本人自食惡果不足惜妓羊,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一胯究、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧躁绸,春花似錦裕循、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至庭瑰,卻和暖如春星持,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弹灭。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工督暂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留揪垄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓逻翁,卻偏偏與公主長得像饥努,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子八回,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內容