docker save

  • docker save centos:self -o centos.tar 导出镜像到文件
  • 用于持久化镜像,导出的tar包需要用 docker load -i imagedata.tar 导入
  • 会将镜像的所有layer导出,导出的文件会比较大。
  • docker load 不可指定镜像名和tar。 docker import 可以指定镜像名和tar
  • 可用 docker history 8652b9f0cb4c 查看镜像的layer
    [root@twilight0319 ~]# docker history centos:self
    IMAGE CREATED CREATED BY SIZE COMMENT
    c9dfc8a523b0 6 minutes ago bash 87.5MB
    <missing> 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
    <missing> 3 weeks ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
    <missing> 3 weeks ago /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB

docker export

  • docker export containerid> dockertest.tar 导出容器,导入后又会变成镜像
  • 用于持久化容器。导出成tar包需要用 docker import 导入
    • docker import dockertest.tar -- centos:111 或者 cat dockertest.tar | docker import - imagename:tag
  • 丢失所有元数据,只保存虚拟机的当前状态。
    [root@twilight0319 ~]# docker history centos:111
    IMAGE CREATED CREATED BY SIZE COMMENT
    ef0539471f16 45 seconds ago 267MB Imported from -

区别

将两种方式导出的tar包再导入成镜像后,重新运行容器,功能上没有任何区别。

做了一些测试,现在有两个文件:export.tarsave.tar 分别是采用export和save的方式导出的。如果采用不匹配的方式导入会怎么样呢:

# 成功,镜像可正常使用
docker load -i save.tar # 成功,镜像可正常使用
docker import export.tar -- kg:export # 报错:
# open /mnt/docker-data/tmp/docker-import-774996991/dev/json: no such file or directory
docker load -i export.tar # 成功,采用不匹配的导入竟然也能成功,但是镜像不可正常使用,
docker import save.tar -- kg:save_import # 使用镜像时出错,无法读取bash
# docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown.
docker run -itd --name kg_save_import kg:save_import bash

这四个命令的对应关系不可出错,否则,会出现奇怪的问题比如:

这东西真是巨坑

Error response from daemon: OCI runtime create failed: container_linux.go:349 : starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown

  • 转移镜像: docker save imagename:tag -o imagedata.tardocker load -i imagedata.tar
  • 转移容器:docker export containerid> dockertest.tardocker import dockertest.tar -- imagename:tag

最新文章

  1. Kafka设计解析(二)- Kafka High Availability (上)
  2. Sql Server函数全解(五)之系统函数
  3. PHP+MYSQL网站SQL Injection攻防
  4. Java开发常用的在线工具
  5. lock
  6. 自学C++第一天
  7. DBA的技能图谱
  8. Windows Internals学习笔记(八)IO系统
  9. js——倒计时
  10. JS 获取select(多选下拉)中所选值的示例代码
  11. Educational Codeforces Round 9 -- A - Grandma Laura and Apples
  12. the identity used to sign the executable is no longer valid.解决方法
  13. gitHub项目框架使用排名
  14. JVM的生命周期——JVM之二
  15. java通讯录
  16. 大约Java有点感悟---开发商根本上感悟学习
  17. C# 基础问答
  18. 免安装版本tomcat 指定的服务并未以已安装的服务存在,Unable to open the service
  19. 基于C/S 结构的IM即时通讯软件--上篇
  20. [Tyvj1001]第K极值 (贪心?模拟)

热门文章

  1. java学习第三天常用类.day12
  2. Slf4j的MDC初尝试
  3. JavaScript(上)
  4. windows如何禁止更新
  5. Spring5中JdbcTemplate
  6. KingbaseES 支持列加密
  7. 跟我学Python图像处理丨关于图像金字塔的图像向下取样和向上取样
  8. K8S概念理解
  9. 使用ko安装的nexus想作为maven仓库使用
  10. nexus迁移