Oracle官方已经正式发布了Oracle 19.3的dockerfile,在自己的笔记本上安装Oracle数据库,docker方式已然成为最简单的方式之一。另外的一种方式是rpm安装,但是要求操作系统是Linux。对于使用macOS的用户来说,Oracle on docker是非常优秀的体验和测试Oracle数据库的方法。
下载Oracle 19.3.0 for Linux安装盘
在OTN网站上下载最新的Oracle Database 19c for Linux x86-64的安装盘。
下载官方dockerfile
在任意目录下通过git方式将dockerfile下载到本地。这里我们创建了~/oracle目录。
将下载的安装盘拷贝到dockerfile相同目录下
构建docker镜像
完成以后可以看到已经有成功构建的Oracle 19c docker image了,同时构建了Oracle Linux 7的基础镜像。
运行容器
完整的运行指南可以在git下来的官方dockerfile目录中找到。
docker-images/OracleDatabase/SingleInstance/README.md
也可以从github页面中直接阅读 – Oracle Database on Docker 。
我们创建一个目录,以存储Oracle数据文件。
在第一次运行容器的时候,会自动创建新的数据库,使用-v参数,将之前新创建的目录映射到容器内的/opt/oracle/oradata目录中,这样就完成了将数据文件存储在本机文件系统中,而非docker容器内。
docker run --name oracle19c \
-p 1521:1521 \
-p 5500:5500 \
-v /Users/Kamus/oracle/oradata/oracle19c:/opt/oracle/oradata \
oracle/database:19.3.0-ee
执行改命令之后,可以注意到第一行的回显列出了自动生成的SYS等用户的密码,本文中是sSNc5GFeSAg=1。
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: sSNc5GFeSAg=1
如果需要修改数据库用户密码,可以在容器运行之后,通过以下命令修改。
比如下面的例子,将数据库sys用户密码设置为简单的oracle(当然这不推荐)。
一直到出现以下字样,表示数据库已经正常创建并且可以使用了。
######################### DATABASE IS READY TO USE! #########################
默认创建的数据库SID是ORCLCDB,创建的PDB是ORCLPDB1,也可以在第一次docker run的时候,用-e参数来指定SID和PDB的名字。比如:
docker run --name new-oracle19c \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=ORCL \
-e ORACLE_PDB=MYPDB1 \
-v /Users/Kamus/oracle/oradata/oracle19c:/opt/oracle/oradata \
oracle/database:19.3.0-ee
测试容器中的Oracle 19c数据库
在成功运行完docker run命令以后,可以看到容器已经正常运行。
$ docker ps | grep oracle
b03dae342bf5 oracle/database:19.3.0-ee "/bin/sh -c 'exec $O…" About an hour ago Up About an hour (healthy) 0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp oracle19c
直接登录容器使用sqlplus做简单的验证。注意使用之前docker run时候回显的用户密码。
也可以在浏览器中登录Oracle 19c内置的EM Express来通过图形界面访问和监控。
4 Comments Add yours