(一)备份:

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

LoveHousedeiMac:idocker lovehouse$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

c9f09116cc83 oracle/database:12.2.0.1-ee "/bin/sh -c 'exec ..." 23 hours ago Exited (137) 4 hours ago oracle

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

LoveHousedeiMac:idockerlovehouse$dockerps-a

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

c9f09116cc83oracle/database:12.2.0.1-ee"/bin/sh -c 'exec ..."23hoursagoExited(137)4hoursagooracle

LoveHousedeiMac:idockerlovehouse$

我们先将该container commit成镜像:

先检查一下已经存在的image:

LoveHousedeiMac:idocker lovehouse$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

oracle/database 12.2.0.1-ee 4f9df5f46a19 23 hours ago 14.8 GB

oraclelinux 7-slim 442ebf722584 4 weeks ago 114 MB

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

LoveHousedeiMac:idockerlovehouse$dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

oracle/database12.2.0.1-ee4f9df5f46a1923hoursago14.8GB

oraclelinux7-slim442ebf7225844weeksago114MB

LoveHousedeiMac:idockerlovehouse$

停下container,并进行commit:

LoveHousedeiMac:idocker lovehouse$ docker stop oracle

oracle

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$ docker commit -p c9f09116cc83 container-backup

sha256:f58f6143fca7d2e001ce810b2d13b8adac9d64e4cc9f50477f0108bb246db3c0

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

LoveHousedeiMac:idockerlovehouse$dockerstoporacle

oracle

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$dockercommit-pc9f09116cc83container-backup

sha256:f58f6143fca7d2e001ce810b2d13b8adac9d64e4cc9f50477f0108bb246db3c0

LoveHousedeiMac:idockerlovehouse$

检查现有的image:

LoveHousedeiMac:idocker lovehouse$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

container-backup latest f58f6143fca7 4 seconds ago 15.3 GB

oracle/database 12.2.0.1-ee 4f9df5f46a19 23 hours ago 14.8 GB

oraclelinux 7-slim 442ebf722584 4 weeks ago 114 MB

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

LoveHousedeiMac:idockerlovehouse$dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

container-backuplatestf58f6143fca74secondsago15.3GB

oracle/database12.2.0.1-ee4f9df5f46a1923hoursago14.8GB

oraclelinux7-slim442ebf7225844weeksago114MB

LoveHousedeiMac:idockerlovehouse$

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

LoveHousedeiMac:idocker lovehouse$ ls

docker-images-master

LoveHousedeiMac:idocker lovehouse$ docker save -o ./container-backup.tar container-backup

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$ ls -l

total 29910416

-rw------- 1 lovehouse staff 15314129920 May 21 21:48 container-backup.tar

drwxr-xr-x@ 19 lovehouse staff 646 May 20 20:04 docker-images-master

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

7

8

9

LoveHousedeiMac:idockerlovehouse$ls

docker-images-master

LoveHousedeiMac:idockerlovehouse$dockersave-o./container-backup.tarcontainer-backup

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$ls-l

total29910416

-rw-------1lovehousestaff15314129920May2121:48container-backup.tar

drwxr-xr-x@19lovehousestaff646May2020:04docker-images-master

LoveHousedeiMac:idockerlovehouse$

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

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

cd /Users/lovehouse

tar cvf oradata.tar oradata

1

2

cd/Users/lovehouse

tarcvforadata.taroradata

(二)还原或克隆:

我们这里将备份的东西,load进去,并且成为oracle_2

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

LoveHousedeiMac:~ lovehouse$ pwd

/Users/lovehouse

LoveHousedeiMac:~ lovehouse$ ls -l

total 7356176

drwxr-xr-x 4 lovehouse staff 136 May 21 21:48 iDocker

drwxr-xr-x@ 6 lovehouse staff 204 May 21 22:21 oradata

drwxr-xr-x@ 6 lovehouse staff 204 May 21 22:21 oradata_2

LoveHousedeiMac:~ lovehouse$

1

2

3

4

5

6

7

8

LoveHousedeiMac:~lovehouse$pwd

/Users/lovehouse

LoveHousedeiMac:~lovehouse$ls-l

total7356176

drwxr-xr-x4lovehousestaff136May2121:48iDocker

drwxr-xr-x@6lovehousestaff204May2122:21oradata

drwxr-xr-x@6lovehousestaff204May2122:21oradata_2

LoveHousedeiMac:~lovehouse$

将备份的tar包 load进去

LoveHousedeiMac:~ lovehouse$ cd idocker

LoveHousedeiMac:idocker lovehouse$ ls

container-backup.tar docker-images-master

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$ docker load -i ./container-backup.tar

94fd1a061ee3: Loading layer [==================================================>] 433.9 MB/433.9 MB

Loaded image: container-backup:latest

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

container-backup latest f58f6143fca7 About an hour ago 15.3 GB

oracle/database 12.2.0.1-ee 4f9df5f46a19 25 hours ago 14.8 GB

oraclelinux 7-slim 442ebf722584 4 weeks ago 114 MB

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

LoveHousedeiMac:~lovehouse$cdidocker

LoveHousedeiMac:idockerlovehouse$ls

container-backup.tardocker-images-master

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$dockerload-i./container-backup.tar

94fd1a061ee3:Loadinglayer[==================================================>]433.9MB/433.9MB

Loadedimage:container-backup:latest

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$dockerimages

REPOSITORYTAGIMAGEIDCREATEDSIZE

container-backuplatestf58f6143fca7Aboutanhourago15.3GB

oracle/database12.2.0.1-ee4f9df5f46a1925hoursago14.8GB

oraclelinux7-slim442ebf7225844weeksago114MB

LoveHousedeiMac:idockerlovehouse$

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

LoveHousedeiMac:idocker lovehouse$ docker run --name oracle_2 -p 1522:1521 -p 5501:5500 -v /Users/lovehouse/oradata_2:/opt/oracle/oradata container-backup:latest

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-MAY-2017 15:21:22

Copyright (c) 1991, 2016, Oracle. All rights reserved.

Starting /opt/oracle/product/12.2.0.1/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production

System parameter file is /opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora

Log messages written to /opt/oracle/diag/tnslsnr/e12ff2cf32f2/listener/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production

Start Date 21-MAY-2017 15:21:26

Uptime 0 days 0 hr. 0 min. 2 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora

Listener Log File /opt/oracle/diag/tnslsnr/e12ff2cf32f2/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

The listener supports no services

The command completed successfully

SQL*Plus: Release 12.2.0.1.0 Production on Sun May 21 15:21:26 2017

Copyright (c) 1982, 2016, Oracle. All rights reserved.

Connected to an idle instance.

SQL> ORACLE instance started.

Total System Global Area 1610612736 bytes

Fixed Size 8793304 bytes

Variable Size 520094504 bytes

Database Buffers 1073741824 bytes

Redo Buffers 7983104 bytes

Database mounted.

Database opened.

SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

#########################

DATABASE IS READY TO USE!

#########################

The following output is now a tail of the alert.log:

Shared IO Pool defaulting to 64MB. Trying to get it from Buffer Cache for process 83.

===========================================================

Dumping current patch information

===========================================================

No patches have been applied

===========================================================

Starting background process CJQ0

2017-05-21T15:21:43.968340+00:00

CJQ0 started with pid=40, OS id=295

Completed: ALTER DATABASE OPEN

2017-05-21T15:21:44.275108+00:00

db_recovery_file_dest_size of 12780 MB is 0.00% used. This is a

user-specified limit on the amount of space that will be used by this

database for recovery-related files, and does not reflect the amount of

space available in the underlying filesystem or ASM diskgroup.

2017-05-21T15:21:47.119178+00:00

Setting Resource Manager plan SCHEDULER[0x4AC9]:DEFAULT_MAINTENANCE_PLAN via scheduler window

Setting Resource Manager CDB plan DEFAULT_MAINTENANCE_PLAN via parameter

ORCLPDB1(3):Setting Resource Manager plan SCHEDULER[0x4AC3]:DEFAULT_MAINTENANCE_PLAN via scheduler window

ORCLPDB1(3):Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

LoveHousedeiMac:idockerlovehouse$dockerrun--nameoracle_2-p1522:1521-p5501:5500-v/Users/lovehouse/oradata_2:/opt/oracle/oradatacontainer-backup:latest

LSNRCTLforLinux:Version12.2.0.1.0-Productionon21-MAY-201715:21:22

Copyright(c)1991,2016,Oracle.Allrightsreserved.

Starting/opt/oracle/product/12.2.0.1/dbhome_1/bin/tnslsnr:pleasewait...

TNSLSNRforLinux:Version12.2.0.1.0-Production

Systemparameterfileis/opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora

Logmessageswrittento/opt/oracle/diag/tnslsnr/e12ff2cf32f2/listener/alert/log.xml

Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

STATUSoftheLISTENER

------------------------

AliasLISTENER

VersionTNSLSNRforLinux:Version12.2.0.1.0-Production

StartDate21-MAY-201715:21:26

Uptime0days0hr.0min.2sec

TraceLeveloff

SecurityON:LocalOSAuthentication

SNMPOFF

ListenerParameterFile/opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora

ListenerLogFile/opt/oracle/diag/tnslsnr/e12ff2cf32f2/listener/alert/log.xml

ListeningEndpointsSummary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Thelistenersupportsnoservices

Thecommandcompletedsuccessfully

SQL*Plus:Release12.2.0.1.0ProductiononSunMay2115:21:262017

Copyright(c)1982,2016,Oracle.Allrightsreserved.

Connectedtoanidleinstance.

SQL>ORACLEinstancestarted.

TotalSystemGlobalArea1610612736bytes

FixedSize8793304bytes

VariableSize520094504bytes

DatabaseBuffers1073741824bytes

RedoBuffers7983104bytes

Databasemounted.

Databaseopened.

SQL>DisconnectedfromOracleDatabase12cEnterpriseEditionRelease12.2.0.1.0-64bitProduction

#########################

DATABASEISREADYTOUSE!

#########################

Thefollowingoutputisnowatailofthealert.log:

SharedIOPooldefaultingto64MB.TryingtogetitfromBufferCacheforprocess83.

===========================================================

Dumpingcurrentpatchinformation

===========================================================

Nopatcheshavebeenapplied

===========================================================

StartingbackgroundprocessCJQ0

2017-05-21T15:21:43.968340+00:00

CJQ0startedwithpid=40,OSid=295

Completed:ALTERDATABASEOPEN

2017-05-21T15:21:44.275108+00:00

db_recovery_file_dest_sizeof12780MBis0.00%used.Thisisa

user-specifiedlimitontheamountofspacethatwillbeusedbythis

databaseforrecovery-relatedfiles,anddoesnotreflecttheamountof

spaceavailableintheunderlyingfilesystemorASMdiskgroup.

2017-05-21T15:21:47.119178+00:00

SettingResourceManagerplanSCHEDULER[0x4AC9]:DEFAULT_MAINTENANCE_PLANviaschedulerwindow

SettingResourceManagerCDBplanDEFAULT_MAINTENANCE_PLANviaparameter

ORCLPDB1(3):SettingResourceManagerplanSCHEDULER[0x4AC3]:DEFAULT_MAINTENANCE_PLANviaschedulerwindow

ORCLPDB1(3):SettingResourceManagerplanDEFAULT_MAINTENANCE_PLANviaparameter

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

LoveHousedeiMac:idocker lovehouse$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

e12ff2cf32f2 container-backup:latest "/bin/sh -c 'exec ..." 3 minutes ago Up 2 minutes 0.0.0.0:1522->1521/tcp, 0.0.0.0:5501->5500/tcp oracle_2

c9f09116cc83 oracle/database:12.2.0.1-ee "/bin/sh -c 'exec ..." 24 hours ago Up 6 minutes 0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp oracle

LoveHousedeiMac:idocker lovehouse$

LoveHousedeiMac:idocker lovehouse$

1

2

3

4

5

6

LoveHousedeiMac:idockerlovehouse$dockerps

CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

e12ff2cf32f2container-backup:latest"/bin/sh -c 'exec ..."3minutesagoUp2minutes0.0.0.0:1522->1521/tcp,0.0.0.0:5501->5500/tcporacle_2

c9f09116cc83oracle/database:12.2.0.1-ee"/bin/sh -c 'exec ..."24hoursagoUp6minutes0.0.0.0:1521->1521/tcp,0.0.0.0:5500->5500/tcporacle

LoveHousedeiMac:idockerlovehouse$

LoveHousedeiMac:idockerlovehouse$

oracle克隆镜像,备份,迁移和克隆docker镜像相关推荐

  1. dashboard 镜像源_使用国内docker镜像源

    在国内,通过Docker的pull和push命令访问hub.docker时,网络十分慢,而且会出现各种各样的网络连接问题.因此这里介绍下如何使用国内的镜像源,这里以DaoCloud为例. 注册完成后, ...

  2. 一键清理oracle,一键清理 Nexus 中无用的 Docker 镜像

    现许多团队使用 Nexus 来管理 Docker 镜像,产品不断迭代,镜像仓库占用的磁盘空间也越来越大.由于 Nexus 的控制台并未提供批量操作镜像功能,清理镜像十分不便.本文分享一个清理 Nexu ...

  3. anconda设置镜像源_管理2000+Docker镜像,Kolla是如何做到的

    根据 DockerHub 上的数据,整个 Kolla 项目管理的 镜像有 2000 多个,这么多的镜像,是怎么定义,又是如何构建的呢? 简介 我们一直在说的 Kolla,通常情况下泛指,包括了 Kol ...

  4. docker 一起性重启所有镜像_docker系列四之docker镜像与容器的常用命令

    docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人站在 ...

  5. 清华镜像源_Hyperledger Fabric2.x Docker镜像编译加速

    一.问题描述 最近工作需要对fabric2的源码进行改造,每次改完想要部署测试的时候,make docker这个命令执行起来超级慢.找到这篇文章的读者应该都遇到与我相同的问题,本文将分析问题产生的原因 ...

  6. linux镜像包含数据库数据么,docker 镜像中包含数据库环境和运行环境

    Android 子线程测试 private volatile boolean mStopped = false; private int i; TextView tv1; TextView tv2; ...

  7. docker镜像和容器的导出导入

    docker镜像的导出和导入 docker镜像和容器的导入导出,用于迁移.备份.升级等场景.主要用到export.import.save.load四个方法. 显示当前docker中的镜像: docke ...

  8. 简单谈谈Docker镜像的使用方法_docker

    在上篇文章(在Docker中搭建Nginx服务器)中,我们已经介绍了如何快速地搭建一个实用的Nginx服务器.这次我们将围绕Docker镜像(Docker Image),介绍其使用方法.包括三部分: ...

  9. 76%都存在漏洞?!Docker镜像安全扫描应该这样做

    在之前的文章<从自身漏洞与架构缺陷,谈Docker安全建设>中,我们介绍了Docker存在的安全问题.整套Docker应用架构的安全基线以及安全规则,重头戏是Docker安全规则的各种思路 ...

  10. Docker基础镜像操作系统基础镜像对比(参考官方文档),优化docker镜像

    目录: 一. 选择Docker基础镜像 操作系统基础镜像 1. busybox 2. Alpine 3. CentOS 4. Ubuntu 5. Debian 二.编程语言基础镜像 应用基础镜像 其它 ...

最新文章

  1. 关于 MyBatis 我总结了 10 种通用的写法
  2. Angular面试从喜剧到悲剧的十个问题
  3. 2.3 残差网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. python3 ftp.mlsd,python3中的ftp目录
  5. java catch中 return_JAVA中try、catch、finally带return的执行顺序总结
  6. vue:axios二次封装,接口统一存放
  7. socket 编程入门教程(五)UDP原理:4、“有连接”的UDP
  8. Java对二维数组排序
  9. ios查看帧率的软件_iOS显示当前页面帧数
  10. 代码调试全指南-自然语言处理-基于预训练模型的方法,车万翔
  11. 计算机主机上有几个按钮,键盘按键有什么功能 电脑键盘上各个按键功能详解...
  12. Springboot+easyUI filebox实现单个文件上传
  13. 百会CRM发布新春致5万企业用户的公开信
  14. 决策树预测音乐喜好(弱)
  15. 记录个tomcat启动报错问题,Unable to process Jar entry
  16. ROS学习-创建一个ROS msg和一个srv
  17. Memory Fusion Network for Multi-view Sequential Learning注意力融合MFN
  18. 淘宝规则不断更新,开网店前景怎样,还好做吗?
  19. Xbox录屏功能录制没声音的解决办法
  20. 纯JavaScript山寨腾讯手机游戏《天天爱消除》开发过程详细

热门文章

  1. 安卓开发使用ttf文字_Android应用使用自定义字体
  2. scrapy 官方中文文档地址
  3. 概要设计说明书【校园BBS论坛】2022-5.5
  4. Scade Suite开发 ARINC 661 (2)Scade Suite基本操作
  5. eclipse中debug断点上有一个斜杠是什么
  6. 微信gif表情包在线编辑怎么做?
  7. matlab数组元素的个数,matlab数组元素个数
  8. editormd生成博客编辑页面
  9. 树莓派小车简单的迷宫算法-基于Python设计
  10. jmeter录制脚本后请求太多_使用Jmeter录制web脚本