构建Anaconda3和Tensorflow镜像之二:使用Dockerfile


构建Anaconda3和Tensorflow镜像之二:使用Dockerfile

1、加载镜像

将原始镜像包 hml_ubuntu.tar 加载到 docker 镜像列表:

首先,将 hml_ubuntu.tar 上传到服务器,在 hml_ubuntu.tar 所在目录执行:

docker load –i hml_ubuntu.tar

完成后查看 docker 镜像:

docker images

会看到镜像 hml/ubuntu 在列表中

2、编写 Dockerfile

在一个单独目录下,新建 Dockerfile(该文件名必须为此):

$ mkdir images
$ cd images
$ vim Dockerfile

Dockerfile 内容:

# base image
FROM hml/ubuntu
MAINTAINER hml <hml@huatec.com>

# install basic dependencies
RUN apt-get update
RUN apt-get install -y bzip2 \
                   libgl1-mesa-glx

# install Anaconda3 python3.6
RUN wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh -O ~/anaconda3.sh
RUN bash ~/anaconda3.sh -b -p /usr/local/anaconda3 \
                   && rm ~/anaconda3.sh
ENV PATH /usr/local/anaconda3/bin:$PATH

# update repo
RUN sh -c echo -e "y\n" | conda update conda
RUN pip install --upgrade pip

# install tensorflow
#RUN pip install --upgrade tensorflow
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade tensorflow
# solve import warning
RUN pip install --upgrade h5py

3、构建镜像

在 Dockerfile 所在目录下,执行:

docker build -t hml/ubuntu:v2 .

完成后,docker images 可以看到镜像:

构建Anaconda3和Tensorflow镜像之二:使用Dockerfile-打不死的小强

4、保存镜像

根据上面的容器保存镜像,执行:docker save –o 归档 tar 文件名 镜像 ID(或镜像 name),此处:

docker save -o hml_ubuntu_v2.tar hml/ubuntu:v2

注: 最好使用镜像 name 代替镜像 ID,如果使用镜像 ID,load 后可能镜像名和 tag 为 Null。

需要较长时间,完成后,在当前目录下会有 hml_ubuntu_v2.tar 文件:

构建Anaconda3和Tensorflow镜像之二:使用Dockerfile-打不死的小强

5、使用镜像

将此镜像保存,后面使用可以直接 load:

docker load -i hml_ubuntu_v2.tar

说明:我是根据实际工作情况整理的该过程,核心内容是 Dockerfile 内容,其他部分根据实际需求和应用场景可以不同,如:

  • 基础镜像可以是通过docker pull直接拉取;
  • 如果不需要 Tensorflow,可以去掉 Dockerfile 中的 Tensorflow 部分,而只构建 Anaconda;
  • 构建镜像的name、tag可以自己指定;
  • 可以直接使用构建好的镜像创建容器服务,而无需先保存镜像;
  • 可以通过容器export镜像,而不用通过save


1 thought on “构建Anaconda3和Tensorflow镜像之二:使用Dockerfile

发表评论

邮箱地址不会被公开。 必填项已用*标注