【ORACLE】从安装ORACLE LINUX 8开始构建一个ORACLE21C的docker镜像
前言
最近有不少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镜像相关推荐
- alpine登陆mysql_如何构建一个php7-alpine的docker镜像
我花了大概一周的时间进行了各种踩坑及实验,最终得出了一份可以使用的dockerfile及compose 内含如下支持 php7 mysql_pdo postgre_pdo phpredis swool ...
- oracle的安装liunx,linux上oracle简单安装
当前位置:我的异常网» Linux/Unix » linux上oracle简单安装 linux上oracle简单安装 www.myexceptions.net 网友分享于:2013-07-27 浏 ...
- oracle部署--安装oracle软件与部署单实例数据库
一.安装oracle数据库软件 1.创建相应的用户组及用户 groupadd oinstall groupadd oper groupadd dba useradd -g oinstall -G ...
- 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
一个用于构建和推送Docker镜像的Maven插件. 使用Maven插件构建Docker镜像,将Docker镜像push到DockerHub上,或者私有仓库,上一篇文章是手写Dockerfile,这篇 ...
- Linux oracle 怎么安装,oracle在linux下怎么安装
oracle在linux下怎么安装 red hat linux 下安装 oracle 10g racle考资料: Oracle官方网站: http://download.oracle.com/docs ...
- oracle rcu 安装,Oracle Fusion MiddlewareⅠ: 数据库和RCU
计划学习下WebCenter,需要搭建环境.计划写几篇文章,以备分享和记录:数据库.RCU.Weblogic.WebCenter Portal.WebCenter Content(UCM).环境配置. ...
- RedHat and Oracle 离线安装oracle教程
目录 安装前的准备 1.上传相关文件(离线依赖包.oracle安装文件)到安装目录下,rpm.zip最好先解压再上传. 2.查看主机名 3.添加主机名与IP对应 4.关闭seLinux 5.安装依赖包 ...
- oracle cloud 安装,Oracle Cloud(甲骨文)重装Windows/centos/debian/Ubuntu
bash -firmware参数为额外驱动支持 默认root密码 MoeClub.org 安装 分离引导卷安装 1.在oracle网页上关闭需刷机的实例并分离引导卷(是关闭千万别点成终止了) 2.将上 ...
- 『ORACLE』安装oracle(11g)
一.操作系统安装,在vmware下安装Linux (OEL5.6),用于数据库服务器 1.打开vmware,选择"创建新的虚拟机" 2.选择自定义安装 3.选择虚拟机硬件兼容性(默 ...
最新文章
- 户外生活--西湖林至千军台
- 一个将字符串转换为整数的函数--atoi()
- Neo4j CQL - (3) -RETURN子句
- 数据结构:四种排序的比较
- CentOS安装glibc-2.14
- ffmpeg 在linux下编译
- 解决sns.load_dataset()加载失败问题github下载缓慢问题
- Qt5+vs2017 UI界面添加新控件后,提示没有类成员
- 人生的智慧——叔本华
- 通信专业能报国考的计算机类吗,通信工程专业可以报考计算机科学技术类公务员职位么...
- 趁你年轻快来学学如何搭建一个小说网站,这里有超详细教程,快进来看看吧,错过了可不要后悔哟。
- Testing Types - 读书笔记
- Aircrack-ng 工具箱
- Stardust AS3粒子引擎
- 2021年茶艺师(初级)考试技巧及茶艺师(初级)试题及解析
- 开源之夏来啦,欢迎报名 Apache APISIX 项目!
- sFlow-rt 3.0流量监控工具安装部署及简单实验
- 全网最详细金融APP测试功能点-测试用例,详细整理(全)
- C++技术的主要应用领域
- 关于在word里的表格里面打公式出现换行问题
热门文章
- 华为鸿蒙2.0 pc,华为鸿蒙工具下载-华为鸿蒙v2.0正式电脑下载 - 91单机网
- Windows和Ubuntu系统文件无法粘贴问题
- 【19】数据库范式、E-R图
- ▷Scratch课堂丨【编程趣味卡3】制作音乐
- 【kaggle】印度语和泰米尔语问答赛题baseline
- route命令添加永久路由
- 【OpenGL】查看显卡对OpenGL的支持程度
- Banner(轮播)
- winfows 切换 双屏_Win10系统如何设置双屏显示?windows10设置双屏显示的方法
- 与i7性能相当的服务器cpu,i7 8550 U相当于七代什么水平?i7 8550 U性能评测分析