语言
<< 返回文章列表

备份,迁移和克隆Docker镜像

2017年12月12日
何剑敏
2082

上周我们分享了在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 ======== 

000.jpg