构建Anaconda3和Tensorflow镜像之一:docker容器内安装+commit


构建Anaconda3和Tensorflow镜像之一:docker容器内安装+commit

1、加载镜像

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

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

docker load –i hml_ubuntu.tar

完成后查看 docker 镜像:

docker images

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

2、运行镜像

执行命令:docker run –dit 镜像 ID,此处:

docker run -dit c27ff95d0f65

使用 docker ps 看到基于该镜像生成的容器:

构建Anaconda3和Tensorflow镜像之一:docker容器内安装+commit-打不死的小强

3、安装 anaconda

进入刚才生成的容器,执行 docker exec –it 容器 ID /bin/bash,此处:

docker exec –it 8548bc2bfff6 /bin/bash

更新源:

apt-get update

首先安装 bzip2,否则后面安装 anaconda 会出如下错(跟初始镜像有关):

构建Anaconda3和Tensorflow镜像之一:docker容器内安装+commit-打不死的小强

执行

apt-get install bzip2

然后安装 anaconda,参见另一篇文章:《anaconda3 安装——linux 下》

4、安装 tensorflow

Anaconda 默认不会安装 tensorflow。所以手动安装 tensorflow,同样参见文章:《Tensorflow 安装——Linux 下基于 pip 方式》

5、提交镜像

执行 docker commit 容器 ID 镜像 name:tag,此处:

docker commit 8548bc2bfff6 hml/ubuntu:v2

docker images,可以 看到新镜像:

构建Anaconda3和Tensorflow镜像之一:docker容器内安装+commit-打不死的小强

6、保存镜像

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

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

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

构建Anaconda3和Tensorflow镜像之一:docker容器内安装+commit-打不死的小强

7、使用镜像

将此镜像保存,后面要使用该镜像可以加载:

docker load -i hml_ubuntu_v2.tar

存在问题:

  • 新镜像太大,因为有很多没用的(如操作历史记录)都打包进去了
  • /etc/profile、/etc/environment 环境变量无法生效(在通过镜像 run 容器时)

这便是不推荐使用容器内安装,然后 commit 的原因



发表评论

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