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
看到基于该镜像生成的容器:
3、安装 anaconda
进入刚才生成的容器,执行 docker exec –it 容器 ID /bin/bash,此处:
docker exec –it 8548bc2bfff6 /bin/bash
更新源:
apt-get update
首先安装 bzip2,否则后面安装 anaconda 会出如下错(跟初始镜像有关):
执行
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,可以 看到新镜像:
6、保存镜像
根据上面的容器保存镜像,执行:docker save –o 归档 tar 文件名 镜像 ID(或镜像 name),此处:
docker save -o hml_ubuntu_v2.tar hml/ubuntu:v2
需要较长时间,完成后,在当前目录下会有 hml_ubuntu_v2.tar 文件:
7、使用镜像
将此镜像保存,后面要使用该镜像可以加载:
docker load -i hml_ubuntu_v2.tar
存在问题:
- 新镜像太大,因为有很多没用的(如操作历史记录)都打包进去了
- /etc/profile、/etc/environment 环境变量无法生效(在通过镜像 run 容器时)
这便是不推荐使用容器内安装,然后 commit 的原因
1