使用Docker制作Python环境连接Oracle镜像

 更新时间:2022年06月28日 10:45:53   作者:xiaogp  
这篇文章主要为大家介绍了使用Docker制作Python环境连接Oracle镜像示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Python连接Oracle本地测试

依赖安装准备

Python、链接Oracle需要Python依赖和本地Oracle客户端,测试环境Oracle版本12.1.0.2.0,开发和测试环境为linux,先安装linux客户端,选择zip解压免安装版本

Oracle linux客户端

解压到某个目录

unzip instantclient-basic-linux.x64-12.1.0.2.0.zip

解压后新建/network/admin文件夹

cd /opt/instantclient_12_1/
mkdir -p /network/admin

修改root用户的环境变量

vim /etc/profile
export ORACLE_HOME=/opt/instantclient_12_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
source /etc/profile

下一步安装Python依赖

pip install cx_Oracle

Python脚本测试

root@ubuntu:~# python
Python 3.7.6 (default, Jan  8 2020, 19:59:22) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle as cx
>>> con = cx.connect('username', 'password', 'xxx.xxx.xxx.xxx:1521/ORCL')
>>> cursor = con.cursor() 
>>> cursor.execute("select * from emp") 
<cx_Oracle.Cursor on <cx_Oracle.Connection to c##als770ud1@192.168.61.79:1521/ORCL>>
>>> cursor.fetchall()
[(1, '张三'), (2, '李四'), (3, '王五')]
>>> 

制作Docker镜像

创建Dockerfile

touch Dockerfile
# 将oracle本地客户端文件夹移动到同一级目录
cp -r /opt/instantclient_12_1/ ./

Dockerfile

FROM python:3.7
ENV  PIPURL "https://mirrors.aliyun.com/pypi/simple/"
RUN pip install cx_Oracle --default-timeout=1000
COPY instantclient_12_1 /opt/instantclient_12_1
ENV ORACLE_HOME=/opt/instantclient_12_1
ENV TNS_ADMIN=$ORACLE_HOME/network/admin
ENV NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
ENV NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
ENV LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
ENV PATH=$ORACLE_HOME:$PATH
RUN apt-get update
RUN apt-get install -y libaio1

镜像构建

docker build -t xiaogp/python_oraqcle:v3 .

构建完成

root@ubuntu:~/docker/PYTHON_ORACLE# docker images
REPOSITORY                              TAG                            IMAGE ID            CREATED             SIZE
xiaogp/python_oraqcle                    v3                             bb0100d9c3f5        39 seconds ago      1.1GB

启动镜像测试一下

root@ubuntu:~/docker/PYTHON_ORACLE# docker run -it bb0100d9c3f5 /bin/bash
root@fbff875ba4d5:/# python
Python 3.7.9 (default, Jan 12 2021, 17:26:22) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle as cx
>>> con = cx.connect('username', 'password', 'xxx.xxx.xxx.xxx:1521/ORCL')
>>> cursor = con.cursor()
>>> cursor.execute("select * from emp")
<cx_Oracle.Cursor on <cx_Oracle.Connection to c##als770ud1@192.168.61.79:1521/ORCL>>
>>> cursor.fetchall()
[(1, '张三'), (2, '李四'), (3, '王五')]

可以链接,制作结束

以上就是使用Docker制作Python环境连接Oracle镜像的详细内容,更多关于docker镜像Python环境连接Oracle的资料请关注脚本之家其它相关文章!

相关文章

  • Python数据分析应用之Matplotlib数据可视化详情

    Python数据分析应用之Matplotlib数据可视化详情

    这篇文章主要介绍了Python数据分析应用之Matplotlib数据可视化详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • 用Python实现斐波那契(Fibonacci)函数

    用Python实现斐波那契(Fibonacci)函数

    这篇文章主要介绍了用Python实现斐波那契(Fibonacci)函数的相关资料,需要的朋友可以参考下
    2016-03-03
  • python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析

    python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析,需要的朋友可以参考下
    2020-03-03
  • Python在游戏中的热更新实现

    Python在游戏中的热更新实现

    本文主要介绍了Python在游戏中的热更新实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • pycharm中虚拟环境venv简介以及实践指南

    pycharm中虚拟环境venv简介以及实践指南

    这篇文章主要给大家介绍了关于pycharm中虚拟环境venv简介以及实践的相关资料,虚拟环境是利用了操作系统中环境变量,以及进程间环境隔离的特性,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • 教你使用TensorFlow2识别验证码

    教你使用TensorFlow2识别验证码

    验证码是根据随机字符生成一幅图片,然后在图片中加入干扰象素,本文主要介绍了 TensorFlow2识别验证码,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • Python 单例设计模式用法实例分析

    Python 单例设计模式用法实例分析

    这篇文章主要介绍了Python 单例设计模式用法,结合实例形式分析了Python单例模式的具体定义与使用操作技巧,需要的朋友可以参考下
    2019-09-09
  • 基于Python编写一个二维码生成器

    基于Python编写一个二维码生成器

    二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式。本文将利用python生成一个简单的二维码生成器,需要的可以参考一下
    2022-06-06
  • Django使用Channels实现WebSocket的方法

    Django使用Channels实现WebSocket的方法

    WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket允许服务端主动向客户端推送数据。这篇文章主要介绍了Django使用Channels实现WebSocket,需要的朋友可以参考下
    2019-07-07
  • 浅谈python中常用的8种经典数据结构

    浅谈python中常用的8种经典数据结构

    这篇文章主要介绍了python中常用的8种经典数据结构,包括原生数据结构,NumPy包中的数据结构,以及Pandas包中的数据结构,需要的朋友可以参考下
    2023-03-03

最新评论