前言

最近有不少ORACLE21C的特性想测试,但是它有些特性是基于ORACLE LINUX操作系统的,网上没搜到现成docker或者虚拟机镜像,而且oracle cloud免费的21c体验不对中国区信用卡用户开放(上次办的万事达只能用19c),于是我打算自己弄一个。

首先我尝试了Tim Hall提供的虚拟机构建方案,https://github.com/oraclebase/vagrant/tree/master/database/ol8_21,
但是我本机由于开启了虚拟化HYPER-V,和Oracle VM VirtualBox可能有冲突,在构建成功后怎么都开不了机,硬件加速设置里的各种组合都试过了,为此我还把本机的hyper-v功能给取消掉了,结果仍旧无法启动虚拟机。虽然oracle官方是说他的虚拟机兼容hyper-v,https://docs.oracle.com/en/virtualization/virtualbox/6.0/admin/hyperv-support.html,
但我实测应该还是有点问题,单独测试新建了个xp的虚拟机同样也是无法启动

VirtualBox Error: Call to NEMR0InitVMPart2 failed:
VERR_NEM_INIT_FAILED (VERR_NEM_VM_CREATE_FAILED).

所以我就打算基于VMWARE全新安装一台ORACLE LINUX 8 虚拟机,再使用Tim Hall提供的docker构建方案构建一个镜像,这样就能做到干净,不影响我本机的环境了。(不用HYPER-V的原因是它的磁盘文件建了多大磁盘,虚拟机文件就多大,太浪费空间了,vmware的虚拟机文件大小是根据实际情况自动增加的,最大不超过设定的大小,还支持压缩释放空间)

vmware的安装就不说了,基本就是一路下一步,顶多有个虚拟化,其他没啥讲的,略过。

需要提前准备的东西

1.OracleLinux-R8-U4-x86_64-dvd.iso (https://yum.oracle.com/oracle-linux-isos.html)
2.apex_21.2_en.zip(https://www.oracle.com/tools/downloads/apex-downloads.html)
3.LINUX.X64_213000_db_home.zip(https://www.oracle.com/database/technologies/oracle-database-software-downloads.html)
4.这个目录及下面所有的文件 https://github.com/oraclebase/dockerfiles/tree/master/database/ol8_21

新建虚拟机

虚拟机硬件部分

点创建新的虚拟机

典型,下一步

选择安装光盘镜像,下一步

设置名称和虚拟机保存位置,下一步

设置磁盘大小40GB,下一步

点击自定义硬件

设置cpu2个,内存4096MB,网络桥接,复制物理网络,点关闭

点完成

虚拟机安装部分

虚拟机启动后,点向上方向键,切换到 Install Oracle Linux 8.4.0,回车

等一会儿,自动进入到语言选择界面,按你自己的习惯选择即可,一般建议用默认的英语

进入到这个界面,先点安装目的地

进来后直接点完成(这里应该是40GiB,此处只为截图演示)

然后点根密码,设置好后点完成

点开始安装

接下来就是漫长的等待了,完成后点重启系统

点许可证信息

打勾,点完成

点结束配置

点前进-前进-跳过,随便新建一个用户,注意不能是oracle,然后点前进

设置密码-前进,点开始使用

点右上角,进入有线,打开有线设置

点击齿轮

勾上自动连接,点确认

显示成这个样子即为连接成功,如果不是这样,请参考下面桥接模式的网络设置

桥接模式的网络设置

桥接模式需要另外设置虚拟网络,进入编辑-虚拟网络编辑器

点下面的更改设置

将桥接模式对应的网卡手动设置成你的主网卡

准备docker构建目录

将apex_21.2_en.zip、LINUX.X64_213000_db_home.zip 两个文件放到ol8_21/softwave目录里,
目录结构应该如下

ol8_21
├── Dockerfile
├── README.md
├── scripts
│   ├── healthcheck.sh
│   └── start.sh
└── software├── apex_21.2_en.zip├── LINUX.X64_213000_db_home.zip└── put_software_here.txt

挂载ol8_21这个目录到虚拟机,可以尝试使用VM自带的功能

但有时候会出现挂载后,在虚拟机内不显示的情况,所以还可以尝试windows开共享,然后虚拟机里挂载smb。
如果都嫌麻烦,可以直接sftp把这个文件夹给复制进虚拟机

安装docker环境及启动docker服务

打开shell工具,用root用户进入虚拟机,执行

dnf install -y dnf-utils zip unzip
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repodnf remove -y runc
dnf install -y docker-ce --nobest

然后执行下面两条,启动docker服务

systemctl enable docker.service
systemctl start docker.service

构建镜像

cd进入刚刚挂载的目录,执行(注意后面有个 .)

docker build -t ol8_21:latest .

如果中间网络断了或其他原因导致失败,需要清除过程文件,否则再次构建可能空间不足

docker system prune

最后显示

Successfully tagged ol8_21:latest

即为成功

最后docker镜像大小为15GB,此时虚拟机40GB空间已经用到35GB了。

运行镜像

docker run -dit --name ol8_21_con \-p 1521:1521 \--shm-size="1G" \ol8_21:latest

或者新建个文件夹将数据文件挂载到本地

mkdir -p ~/volumes/ol8_21_con_u02/docker run -dit --name ol8_21_con \-p 1521:1521 \--shm-size="1G" \-v /u01/volumes/ol8_21_con_u02/:/u02 \ol8_21:latest

等几分钟后,就可登录数据库了,具体进度可监控日志

docker logs --follow ol8_21_con

这个时候虚拟机40G空间已经用得差不多了,容器运行需要5G空间。

密码及参数

数据库sys的默认密码配置在Dockfiles文件中,当然你也可以在构建前修改相关参数,比如要不要安装APEX

Define config (runtime) environment variables.
ENV ORACLE_SID=cdb1
SYS_PASSWORD=“SysPassword1”
PDB_NAME=“pdb1”
PDB_PASSWORD=“PdbPassword1”
INSTALL_APEX=“true”

后记

使用过程中遇到个奇怪的现象,我暂停虚拟机运行,再恢复,竟然无法在容器外再连上数据库了,虚拟机内容器还是在运行的,而且数据库也是正常启动的,容器内可以登录数据库。然后尝试stop容器再start,同样在容器外部无法连接。最终是重启了服务器再开启容器才连上。

我猜测这里存在某种机制会让docker的映射端口失效,但是检查docker port,端口映射还在那里;查看netstat -ntlp,端口也是处于监听状态。也就是说服务器和容器都没问题,是它们之间的沟通出了问题了(像极了前后端开发吵架~)。沿着这个思路,我尝试在此场景下,终止docker服务再启动docker服务和容器,果然通了。至于为什么暂停虚拟机再恢复虚拟机会导致这个问题,目前阶段我给不出明确原因,猜测可能是虚拟机暂停和恢复时并没有完整还原所有的数据,比如一些硬件地址,导致端口映射错位,毕竟端口号也只是个"名称"而已。

之后我又把这个镜像 push到了阿里云上,然后再在本机windows环境上pull下来,同样也可以使用,只是第一次启动的时候需要几分钟来初始化数据库。(15GB,上传下载就需要不少时间了)

另外,这个docker里没配置oml4py的相关环境
【ORACLE】在ORACLE数据库中启用机器学习功能(OML)以支持PYTHON脚本的运行,
改天看看怎么修改docker的构建脚本让它预先安装,目前还不确定这次用的oraclelinux:8-slim系统版本是否支持oml。精简版镜像构建的就这么大了(操作系统只有一百兆,其实最主要的原因是这个dockerfile没有使用多阶段构建的方式),如果直接用OL8的完整版构建,最后的docker镜像可是个庞然大物了

  • 本文作者: DarkAthena
  • 本文链接: https://www.darkathena.top/archives/create-ol8-21-docker
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!

【ORACLE】从安装ORACLE LINUX 8开始构建一个ORACLE21C的docker镜像相关推荐

  1. alpine登陆mysql_如何构建一个php7-alpine的docker镜像

    我花了大概一周的时间进行了各种踩坑及实验,最终得出了一份可以使用的dockerfile及compose 内含如下支持 php7 mysql_pdo postgre_pdo phpredis swool ...

  2. oracle的安装liunx,linux上oracle简单安装

    当前位置:我的异常网» Linux/Unix » linux上oracle简单安装 linux上oracle简单安装 www.myexceptions.net  网友分享于:2013-07-27  浏 ...

  3. oracle部署--安装oracle软件与部署单实例数据库

    一.安装oracle数据库软件 1.创建相应的用户组及用户 groupadd oinstall groupadd oper groupadd  dba useradd  -g oinstall -G ...

  4. 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上

    一个用于构建和推送Docker镜像的Maven插件. 使用Maven插件构建Docker镜像,将Docker镜像push到DockerHub上,或者私有仓库,上一篇文章是手写Dockerfile,这篇 ...

  5. Linux oracle 怎么安装,oracle在linux下怎么安装

    oracle在linux下怎么安装 red hat linux 下安装 oracle 10g racle考资料: Oracle官方网站: http://download.oracle.com/docs ...

  6. oracle rcu 安装,Oracle Fusion MiddlewareⅠ: 数据库和RCU

    计划学习下WebCenter,需要搭建环境.计划写几篇文章,以备分享和记录:数据库.RCU.Weblogic.WebCenter Portal.WebCenter Content(UCM).环境配置. ...

  7. RedHat and Oracle 离线安装oracle教程

    目录 安装前的准备 1.上传相关文件(离线依赖包.oracle安装文件)到安装目录下,rpm.zip最好先解压再上传. 2.查看主机名 3.添加主机名与IP对应 4.关闭seLinux 5.安装依赖包 ...

  8. oracle cloud 安装,Oracle Cloud(甲骨文)重装Windows/centos/debian/Ubuntu

    bash -firmware参数为额外驱动支持 默认root密码 MoeClub.org 安装 分离引导卷安装 1.在oracle网页上关闭需刷机的实例并分离引导卷(是关闭千万别点成终止了) 2.将上 ...

  9. 『ORACLE』安装oracle(11g)

    一.操作系统安装,在vmware下安装Linux (OEL5.6),用于数据库服务器 1.打开vmware,选择"创建新的虚拟机" 2.选择自定义安装 3.选择虚拟机硬件兼容性(默 ...

最新文章

  1. 户外生活--西湖林至千军台
  2. 一个将字符串转换为整数的函数--atoi()
  3. Neo4j CQL - (3) -RETURN子句
  4. 数据结构:四种排序的比较
  5. CentOS安装glibc-2.14
  6. ffmpeg 在linux下编译
  7. 解决sns.load_dataset()加载失败问题github下载缓慢问题
  8. Qt5+vs2017 UI界面添加新控件后,提示没有类成员
  9. 人生的智慧——叔本华
  10. 通信专业能报国考的计算机类吗,通信工程专业可以报考计算机科学技术类公务员职位么...
  11. 趁你年轻快来学学如何搭建一个小说网站,这里有超详细教程,快进来看看吧,错过了可不要后悔哟。
  12. Testing Types - 读书笔记
  13. Aircrack-ng 工具箱
  14. Stardust AS3粒子引擎
  15. 2021年茶艺师(初级)考试技巧及茶艺师(初级)试题及解析
  16. 开源之夏来啦,欢迎报名 Apache APISIX 项目!
  17. sFlow-rt 3.0流量监控工具安装部署及简单实验
  18. 全网最详细金融APP测试功能点-测试用例,详细整理(全)
  19. C++技术的主要应用领域
  20. 关于在word里的表格里面打公式出现换行问题

热门文章

  1. 华为鸿蒙2.0 pc,华为鸿蒙工具下载-华为鸿蒙v2.0正式电脑下载 - 91单机网
  2. Windows和Ubuntu系统文件无法粘贴问题
  3. 【19】数据库范式、E-R图
  4. ▷Scratch课堂丨【编程趣味卡3】制作音乐
  5. 【kaggle】印度语和泰米尔语问答赛题baseline
  6. route命令添加永久路由
  7. 【OpenGL】查看显卡对OpenGL的支持程度
  8. Banner(轮播)
  9. winfows 切换 双屏_Win10系统如何设置双屏显示?windows10设置双屏显示的方法
  10. 与i7性能相当的服务器cpu,i7 8550 U相当于七代什么水平?i7 8550 U性能评测分析