如何利用docker安装oracle?

前言

Oracle Database是一个可扩展、高性能和可靠的关系数据库管理系统,被广泛用于企业的数据管理和应用开发。它提供了强大的数据存储、查询和处理功能,支持复杂的数据模型和大规模的数据处理需求。Docker作为一个强大的容器化平台,因此我们可以利用docker来安装我们的oracle,以此提高开发和运维的效率。

安装docker

  • 多的不说,少的不唠,咱们先把要用的docker安装下(安装过的请忽略),按顺序执行以下命令:
csharp 复制代码
#安装Docker所需的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加Docker的Yum仓库地址为阿里云镜像站点,用于获取Docker软件包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装指定版本的Docker软件包
yum -y install docker-ce-18.03.1.ce 
#检测是否成功
docker version

安装oracle

获取镜像

bash 复制代码
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
或者
docker pull registry.aliyuncs.com/helowin/oracle_11g
  • 如果你是公司内网,就无法像上面那样拉取镜像了,因此我们需要将需要的镜像上传到服务器某个目录,利用docker load加载进来就行了。
bash 复制代码
#从别的服务器生成docker-oracle.rar
docker save oracle(你服务器中镜像名称) -o docker-oracle.rar(你定义的镜像包名称)
#导入
docker load < docker-oracle.rar #注意自己的docker-oracle.rar目录

运行

ruby 复制代码
docker run -itd -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata -e ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 -e ORACLE_SID=helowin registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest
#检查是否成功
docker ps

oracle配置

  1. 进入oracle容器内部:docker exec -it oracle /bin/bash
  2. 切换到root用户 su root 密码:helowin
  3. 配置环境变量, 使用vi /etc/profile进行编辑, 末尾加上如下:
bash 复制代码
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLEHOME/bin:PATH
  1. 保存退出后,重新加载配置 source /etc/profile
  2. 创建软链接 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
  3. 切换回oracle用户:su - oracle
  4. 添加远程登录用户:
sql 复制代码
create user test identified by 123456; #创建内部管理员账号密码
grant connect,resource,dba to test; #将dba权限授权给内部管理员账号和密码
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; #设置密码永不过期
alter system set processes=1500 scope=spfile; #修改数据库最大连接数据
  1. 修改完成之后,要重新启动一下数据库,使配置生效,先进入数据库 conn /as sysdba;,然后先关闭再开启(如下图)
  2. 利用navicat工具连oracle:sid:helowin 账号:test 密码 123456

结语

初次接触oracle,如有不足还请指正。后续如果有时间,会深入研究。

相关推荐
辞旧 lekkk8 小时前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
liuhuizuikeai10 小时前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
初願致夕霞11 小时前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
charlie11451419113 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
渣渣盟14 小时前
Mysql入门到精通全集(SQL99)包含关系运算,软考数据库工程师复习首选
数据库·mysql·oracle
消失的旧时光-194314 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
SWAGGY..14 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
kdxiaojie14 小时前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
AlfredZhao14 小时前
APEX实战第13篇:全套开发环境的本地配置与恢复实践
oracle·apex·ords
烛衔溟15 小时前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript