关于docker的基础知识,这里不做多介绍,请自行补充,可参考:
https://docs.docker.com/engine/reference/builder/
docker中通过conda实现多套环境,但与物理机或者dev中的流程有所差异,直接把安装命令搬到dockerfile中不一定能执行成功
1.在dockerfile中创建多套环境
创建多套环境主要通过conda命令:conda create -n 环境名
激活环境命令:conda activate 环境名
FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04
RUN apt-get install vim -y
RUN apt-get install git -y
RUN apt-get install cmake -y
RUN apt-get install curl -y
RUN curl -o ~/miniconda.sh -O https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-
x86_64.sh && \
chmod +x ~/miniconda.sh && \
~/miniconda.sh -b -p /opt/conda
rm ~/miniconda.sh
ENV PATH /opt/conda/bin:$PATH
RUN conda create -n tf_nightly -y
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN conda info|egrep "conda version|active environment"
RUN source deactivate base
RUN source activate tf_nightly
RUN conda env list
RUN pip install tf-nightly-gpu==1.15.0.dev20190821 -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip uninstall tf-estimator-nightly -y
RUN pip install tf-estimator-nightly==1.14.0.dev2019092301
在物理机上,一般是通过
conda create -n env_name
命令创建一套新环境, 通过
conda activate env_name
来切换到新环境,但是在dockerfile中却不一定成功,dockerfile需要改成
RUN source activate env_name
才能成功build镜像,在ubuntu系统docker镜像中会遇到source命令找不到的问题,可通过下面
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
更改执行的脚步
conda参考:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
dockerfile参考:https://yeasy.gitbooks.io/docker_practice/image/build.html
2. 构建docker镜像
docker build -i docker_repository:image_name .
4.运行本地docker
docker run --runtime=nvidia --device /dev/snd -it docker_repository:docker_name bash
4. push docker镜像到远程仓库
docker push docker_repository:docker_name