在docker中配置Oracle11g的过程

 更新时间:2023年04月03日 08:29:26   作者:不凉boy  
这篇文章主要介绍了在docker中配置Oracle11g ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

docker镜像拉取及相关配置

1.在docker打开的情况下,使用下方命令拉去镜像,大概需要下载3个G的image文件

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2.启动Oracle镜像并为镜像新建容器,注意此处的oracle11g即为容器名,可以自主设置

docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

由于在windows10专业版系统的docker是使用wsl作为容器内核,所以存在着一系列的内存,CPU以及交换空间的一些限制,我们可以在一个

.wslconfig文件中配置如上信息。若是在运行上语句的时候发现容器并没有正常运行,而是以一个139的错误代码退出,则说明我们的wsl的一部分限制导致了此容器不能正常运行。此时,我们可以在C:\Users\username路径下新建一个.wslconfig文件,并写入如下内容(若是文件已存在则直接添加即可)

[wsl2]
kernelCommandLine = vsyscall=emulate

3.打开容器命令如下(针对上一步没有正常打开容器)

docker start oracle11g

4.进入已打开容器命令如下

docker exec -it oracle11g bash

5.进行环境变量的配置

使用管理员账户密码为helowin

su root

编辑profile环境变量文件

vi /etc/profile

点击i进入文件编辑模式,在文件末尾添加如下信息,按ESC键退出编辑模式,键入:wq保存文件并退出文件

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

键入exit命令退出管理员账号,回到oracle用户

exit

使用如下命令使刚设置的环境变量生效

source /etc/profile

由于Oracle是基于实例和用户的,所以我们可以新建一个用户来完成我们当前需要完成的工作

sqlplus /nolog #打开sqlplus但是不进行连接操作
conn /as sysdba; #无用户、密码以最高权限登录
alter user system identified by oracle; #更改system用户密码为oracle
conn system/oracle; #连接system数据库
create user username identified by username; #创建一个新用户,用户名可自由设置
grant all privileges to username;#为新用户赋权
shutdown immediate; #关闭当前数据库
exit; #退出sqlplus

6.设置oracle支持外部连接访问

登录管理员用户,密码为helowin

su root

使用如下命令获得当前主机名

hostname

获得监听器listener.ora和tnsnames.ora文件的目录

find / | grep /network/admin

使用获得的路径编辑文件,将文件中的localhost变量用我们查询到的hostname名替代

vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora

此时,我们需要做的配置已经全部做好了,之后只需要保持容器为运行的状态即可。

使用Nacicat连接已经配置好的数据库

首先,我们需要到Instant Client for Microsoft Windows (x64) 64-bit (oracle.com)即Oracle的官网下载数据库连接要用到的证书文件。(注意,我们需要下载与自己Oracle数据库版本对应的证书文件)

查询数据库的具体版本,需要在sqlplus中执行如下命令

select * from v$version

为Navicat配置OCI环境,Navicat选择工具--->选项--->环境--->OCI环境,选中我们解压后的证书文件夹中的oci.dll文件即可。新建连接的时候的配置如下:

使用python连接Oracle数据库

建议使用anoconda创建一个新的虚拟环境来进行新的系统任务。

首先,使用如下命令下载需要进行连接oracle数据库的包cx_Oracle

pip install cx_Oracle

其后,我们需要创建一个.py文件,并在其中输入如下代码:

import cx_Oracle
conn = cx_Oracle.connect('账号','密码','数据IP:端口/数据库实例名称')
cusor = conn.cursor()
print('连接数据库成功!')
print(cx_Oracle.__version__)

直接运行该代码是行不通的,我们需要将必要的驱动文件放到与该文件同级目录下,驱动文件在我们之前下载的证书文件压缩包中已经有了,我们需要移动的文件有oci.dll,ocijdbc11.dll,ociw32.dll,orannzsbb11.dll,oraocci11.dll,oraociei11.dll,orasql11.dll

配置好文件之后,我们运行代码得到如下输出即代表数据库连接完成

连接数据库成功!
8.3.0

到此这篇关于在docker中配置Oracle11g的文章就介绍到这了,更多相关docker配置Oracle11g内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker-修改容器挂载目录的3种方法小结

    docker-修改容器挂载目录的3种方法小结

    这篇文章主要介绍了docker-修改容器挂载目录的3种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker自定义网络详解

    Docker自定义网络详解

    本文主要跟大家讲解了Docker中的自定义网络的相关知识,包含网关、子网地址等等,非常的详实,有需要的小伙伴可以参考下
    2022-11-11
  • Docker搭建私有化仓库的几种方法

    Docker搭建私有化仓库的几种方法

    搭建 Docker 私有化仓库是一个非常重要的实践,它能够帮助你安全地存储和管理 Docker 镜像,本文主要介绍了Docker搭建私有化仓库的的几种方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • docker CPU限制的实现

    docker CPU限制的实现

    这篇文章主要介绍了docker CPU限制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Ubuntu Docker 的安装部署及简单应用

    Ubuntu Docker 的安装部署及简单应用

    这篇文章主要介绍了Ubuntu Docker 的安装部署的相关资料,这里说明介绍了详细的步骤,需要的朋友可以参考下
    2016-10-10
  • docker容器互联的实现步骤

    docker容器互联的实现步骤

    容器互联是除了端口映射外另一种可以与容器通信的方式,本文就来介绍一下docker容器互联的实现步骤,感兴趣的可以了解一下
    2023-12-12
  • Docker 数据卷及数据容器详细介绍及示例

    Docker 数据卷及数据容器详细介绍及示例

    这篇文章主要介绍了Docker 数据卷及数据容器详细介绍及示例的相关资料,Docker 很强大,不仅部署维护提高效率,docker和宿主之间的数据共享以及docker间的数据共享需要好好研究一下,需要的朋友可以参考下
    2016-11-11
  • 如何找到Docker容器(redis)中的持久化文件

    如何找到Docker容器(redis)中的持久化文件

    要查看Docker容器的dump.rdb和appendonly.aof文件(如果启用了AOF持久化)的位置,我们需要知道容器中Redis配置文件的内容或者容器的数据卷的挂载位置,本文给大家介绍如何找到Docker容器(redis)中的持久化文件,感兴趣的朋友一起看看吧
    2023-10-10
  • seata docker 高可用部署的详细介绍

    seata docker 高可用部署的详细介绍

    这篇文章主要介绍了seata docker 高可用部署的相关知识,通过相关配置文件实现高可用需要依赖注册中心,配置中心,数据库,需要的朋友可以参考下
    2021-07-07
  • 常用的8个应用和中间件的Docker运行示例详解

    常用的8个应用和中间件的Docker运行示例详解

    Portainer是一个轻量级的管理 UI ,可让你轻松管理不同的 Docker 环境(Docker 主机或 Swarm 群集),这篇文章主要介绍了常用的8个应用和中间件的Docker运行示例,需要的朋友可以参考下
    2024-03-03

最新评论