查看原文
其他

备份,迁移和克隆Docker镜像

何剑敏 数据和云 2019-12-14

编辑手记:上周我们分享了在MAC上安装Docker并部署Oracle 12.2数据库环境,基于Docker构建测试环境,非常快速和简捷。只通过以下几个步骤即可快速完成:

1. 在Mac上安装docker,并启动docker
2. 部署oracle docker的build file,并创建image
3. 部署oracle软件在docker中
4. 安装oracle实例在docker中
5. 启动,停止docker以及连接数据库


今天我们再来看看如何将docker镜像进行备份,迁移和克隆。


一、备份
我们用docker ps看有几个container,注意如果加-a参数,则没有running的container也会显示出来。


我们先将该container commit成镜像:
先检查一下已经存在的image:


停下container,并进行commit:


检查现有的image:


将container-backup 这个image做成tar文件:


我们将container-backup.tar备份或者迁移至别的主机,或者路径。实现了docker container的迁移。

注意,由于之前我们建立database采用了分离式的持久化,即数据文件不是在container,是在/Users/[username]/oradata下,所以我们也要备份一份这个文件。


cd /Users/lovehouse

tar cvf oradata.tar oradata


二、还原或克隆
我们这里将备份的东西,load进去,并且成为oracle_2

先将数据文件还原,且文件夹命名成oradata_2


将备份的tar包 load进去


运行docker run创建container,注意端口要修改一下,以免占用原来的oracle这个container的端口。如果不修改,那么第二个container启动的时候会报错:port is already allocated


至此,2个docker container已经同时跑起来。container-backup:latest这个container是利用第一个克隆出来的,并且做了端口映射,将1522映射到内部的1521,将5501映射到内部的5500。

======== END ======== 

如果觉得文章好,欢迎打赏:

加入"云和恩墨大讲堂"微信群,参与讨论学习

搜索 盖国强(Eygle)微信号:eyygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。


关注公众号,获得后续精彩分享

近期文章

云和恩墨2017 DTCC数据库大会PPT

一条诡异的SQL引发的性能问题

Lockdown Profile 的多租户权限控制

在线的修改数据表为分区表

性能优化之查询转换 - 子查询类

基于Oracle公有云的备份与恢复

MySQL Group Replication 学习笔记

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存