docker容器、镜像的导出导入、保存加载

容器的导出-导入

利用容器进行镜像的导出和导入

docker export 容器ID > xxx.tar
docker import xxx.tar > newXxx:y.y

通过docker ps -a查到一个redis的容器,通过如下命令导出该容器

docker export c41550a9cb0c > redis_container.tar

到另一台服务器导入

docker import redis_container.tar redis:6.2

可以成功导入,但是在docker run的时候会提示

docker: Error response from daemon: No command specified.
See 'docker run --help'.

或者

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "-d": executable file not found in $PATH: unknown.

exec:"-d"可能是任何一种你写的启动参数,总是就是带有OCI runtim $PATH的一种错误,在网上没有找到解决方案,但是大概了解了导致的原因:

export 导出(import 导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史记录和元数据信息(即仅保存容器当时的快照状态),所以无法进行回滚操作。

比如会丢失command,就是docker inspect 容器名可以查到的
在这里插入图片描述
因为export-import删除了很多元数据,所以体积小,所以import时可以对镜像重命名,所以不能直接运行。。。?

镜像的保存-加载

直接基于镜像进行保存和加载,而不利用容器

docker save
docker load

比如通过docker images查到一个redis:6.2的镜像,就可以通过如下命令保存为tar文件

docker save -o redis_images.tar redis:6.2

到另一台服务器加载这个镜像

docker load < redis_images.tar

然后就能把redis运行起来了docker run -d --name redis62 -p 6379:6379 redis:6.2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值