docker镜像制作commit方式

docker镜像制作

可以先基于一个已有镜像,通过bash添加自己需要的环境,然后commit一下【虽然官方不建议通过commit方式来创建,如果不担心镜像会越来越大的话,这种方式是最自由最简单的,通过dockerfile当然是更优的啦】

基于tensorflow官方镜像做修改,https://hub.docker.com/r/tensorflow/tensorflow/

拉线上镜像

docker pull tensorflow/tensorflow

运行bash

docker run -it tensorflow/tensorflow bash

安装python3+tensorflow-gpu+keras等等

安装完环境后退出docker

exit

查看所有docker容器,找到要commit的容器id

docker ps -a

结果如下:


这里我要commit的容器id为00ff1b764a1b

commit制作镜像

官方文档:https://docs.docker.com/engine/reference/commandline/commit/

docker commit -a "vellhe" -m "py3.6_tf1.8_keras2.2" 00ff1b764a1b tf_keras:v1

查看制作出来的镜像

docker images

将制作出来的镜像提交到https://hub.docker.com

需要先注册一个账号,然后创建一个REPOSITORY,在本地将镜像标记成和线上一样的REPOSITORY名,最后在本地登录账号并push到线上

  • 注册账号并创建REPOSITORY
    我创建的REPOSITORY:


  • 将镜像标记成同名REPOSITORY


  • 登录账号
docker login
  • push到线上



    通过commit搭建的镜像真的比较大,上传就只能慢慢等了

镜像导出导入

由于我网络堪忧,要都依赖线上镜像的话,镜像拷贝真的要死要死的了,所以必须线下导出导入
有两种方案:save&load、export&import

  • save&load 【保存镜像,并不是容器】
# save
docker save vell001/tf-keras > tf-keras.tar
# load
docker load < tf-keras.tar
  • export&import 【Export命令用于持久化容器(不是镜像),不会保留镜像的层级信息,所以大小会比save要小】
docker export 33f6c8359187 > tf-keras-33f6c8359187.tar
docker import tf-keras-33f6c8359187.tar
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,627评论 15 147
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,409评论 0 27
  • 额外补充 查看容器运行状态 进入容器内进行命令行操作 在容器mynginx中开启一个交互模式的终端 容器生命周期管...
    tianmac阅读 4,574评论 1 2
  • Docker值得关注的特性: o 文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。 o 资源隔离:系统...
    Anson前行阅读 797评论 0 2
  • 很多人都觉得编程是一个比较特殊的职业,整天的加班,想不起来陪媳妇或陪老公。还整天自嘲为码农,屌丝等等。这是传统意义...
    东辉在线阅读 2,249评论 5 28