docker构建oracle集群,docker 构建 oracle数据库 镜像-Go语言中文社区

前言

之前docker 部署的 oracle 镜像,突然从 dockerhub 下架了。所以没办法,只能自己打包一个oracle 数据库的镜像。

找来找去,其实oracle 自身就提供了oracle 的产品 docker 构建脚本。所以直接按照oracle 官方的docker 构建仓库的说明打包。

oracle 官方 docker image

官方提供了一个开源仓库,里面有所有的oracle产品的docker image构建的脚本。

地址:https://github.com/oracle/docker-images

将上述的仓库clone 到本地。

docker images clone下来的目录结构

b1581743b4fa142823ae9e22b5a5c01d.png

我们需要打包的oracle 数据库,在 OracleDatabase 这个目录中。

进入到OracleDatabase 可以看到两个文件夹,其实比较关键。

一个RAC,一个SingleInstance。

看名字就可以很明白,如果做集群镜像,就打包RAC的 ,如果要是做单节点的就打包SingleInstance的。

我们这边仅需要一个单节点数据库,所以就打包SingleInstance。

支持的oracle database 版本

版本号11.2.0.2

12.1.0.2

12.2.0.1

18.3.0

18.4.0

19.3.0

我们以12.2.0.1版本作为例子

docker-images这个仓库只有build的脚本,并不携带任何oracle database 的安装包。所以我们还得去下载oracle database 对应版本的安装包。

准备oracle 12.2.0.1 的安装包

全版本的下载地址 https://www.oracle.com/cn/database/technologies/enterprise-edition/documentation/database.html

我们需要的12.2.0.1 版本 https://www.oracle.com/database/technologies/oracle12c-linux-12201-downloads.html

下载12.2.0.1 版本的linux 版本安装包。下载好后,将压缩包文件放到

docker-images/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1

目录下即可。

构建

cd docker-images/OracleDatabase/SingleInstance/dockerfiles

执行该目录下的 buildDockerImage.sh

Usage: buildDockerImage.sh -v [version] [-e | -s | -x] [-i] [-o] [Docker build o ption]

Builds a Docker Image for Oracle Database.

Parameters:

-v: version to build

Choose one of: 11.2.0.2 12.1.0.2 12.2.0.1 18.3.0 18.4.0 19.3.0

-e: creates image based on 'Enterprise Edition'

-s: creates image based on 'Standard Edition 2'

-x: creates image based on 'Express Edition'

-i: ignores the MD5 checksums

-o: passes on Docker build option

* select one edition only: -e, -s, or -x

LICENSE UPL 1.0

Copyright (c) 2014-2019 Oracle and/or its affiliates. All rights reserved.

该脚本的帮助文档 还是比较全面的 ,所以按照提示执行编译即可。

我这边的build 参数

./buildDockerImage.sh -v 12.2.0.1 -e

打包成功后,会在docker images 下生成 oracle/database:12.2.0.1-ee 这个镜像。

运行容器

docker run --name

--shm-size=1g

-p 1521:1521 -p 8080:8080

-e ORACLE_PWD=

-v [:]/u01/app/oracle/oradata

-d

oracle/database:12.2.0.1-ee

可以设置的参数如下

Parameters:

--name: The name of the container (default: auto generated)

--shm-size: Amount of Linux shared memory

-p: The port mapping of the host port to the container port.

Two ports are exposed: 1521 (Oracle Listener), 8080 (APEX)

-e ORACLE_PWD: The Oracle Database SYS, SYSTEM and PDB_ADMIN password (default: auto generated)

-v /u01/app/oracle/oradata

The data volume to use for the database.

Has to be writable by the Unix "oracle" (uid: 1000) user inside the container!

If omitted the database will not be persisted over container recreation.

-v /u01/app/oracle/scripts/startup | /docker-entrypoint-initdb.d/startup

Optional: A volume with custom scripts to be run after database startup.

For further details see the "Running scripts after setup and on startup" section below.

-v /u01/app/oracle/scripts/setup | /docker-entrypoint-initdb.d/setup

Optional: A volume with custom scripts to be run after database setup.

For further details see the "Running scripts after setup and on startup" section below.

大概看一下就明白了,其他的也没啥特别的参数。

这个容器启动成功后,实例名为ORCLPDB1 的数据库就可以测试连接一下。

连接参数如下

b7e911373e7039dfed633de62f67553e.png

即可连接成功,剩下的如何使用,自由发挥咯……

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值