备份,迁移和克隆Docker镜像
上周我们分享了在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 ========