docker 镜像的制作

Doock file

镜像迁移

镜像处理分为两种方式,一种是直接对镜像进行迁移,命令为 save和load。save用于将镜像导出为tar压缩包,load是将tar压缩包导入。

另外一种是对容器处理,命令是export 和import。

save和 load

save和load 是对镜像进行处理,不能操作容器。当然load也能操作容器export出来的镜像tar包,但是强烈建议按照save&load 这种格式进行操作。

  • 导出镜像

docker save -o 镜像保存文件.tar 需要导出的镜像名称:tag

docker save -o tomact-8.5.tar tomcat:8.5
  • 导入镜像

docker load -i 镜像保存文件.tar
案例:

docker load -i tomcat-8.5.tar

小提示load命令无法重新指定镜像标签。我们可以导入后再通过docker tag命令对容器镜像重新打标签。

容器处理

有时候我们可以通过docker run 运行一个容器实例后,在通过docker exec 进入到容器内部,修改我么想要修改的文件后,最后将容器导出为镜像。

  • 导出容器

虽然说是导出容器,其实是将容器文件系统打包为一个镜像。所以对应的docker import是导入成了image,而不是导入成一个容器实例。
docker export 容器ID > /data/tocmat-8.5.tar

docker export xxxxxx > /data/tocmat-8.5.tar
  • 导入容器

docker import 容器文件包.tar 容器名称:容器标签

docker import postgres-export.tar postgres:latest

总结

  • docker save 和load 是可以操作镜像和容器的,比如docker save一般用于保存镜像,但是也可以操作容器实例,比如docker save 容器ID。但是save 容器id也只是对容器实例背后对应的镜像保存成tar文件。

  • 同理 docker load 也可以加载docker export 出来的镜像。但是不能重新指定标签名

  • docker import 和export 智能操作容器,并且import过程中 可以重新指定容器标签信息。

  • save和load;import和export是成对的,强烈建议成对使用。

评论

公众号:mumuser

企鹅群:932154986

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×