使用Docker制作Python環(huán)境連接Oracle鏡像
Python連接Oracle本地測(cè)試
依賴(lài)安裝準(zhǔn)備
Python、鏈接Oracle需要Python依賴(lài)和本地Oracle客戶(hù)端,測(cè)試環(huán)境Oracle版本12.1.0.2.0,開(kāi)發(fā)和測(cè)試環(huán)境為linux,先安裝linux客戶(hù)端,選擇zip解壓免安裝版本
解壓到某個(gè)目錄
unzip instantclient-basic-linux.x64-12.1.0.2.0.zip
解壓后新建/network/admin文件夾
cd /opt/instantclient_12_1/ mkdir -p /network/admin
修改root用戶(hù)的環(huán)境變量
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依賴(lài)
pip install cx_Oracle
Python腳本測(cè)試
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鏡像
創(chuàng)建Dockerfile
touch Dockerfile # 將oracle本地客戶(hù)端文件夾移動(dòng)到同一級(jí)目錄 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
鏡像構(gòu)建
docker build -t xiaogp/python_oraqcle:v3 .
構(gòu)建完成
root@ubuntu:~/docker/PYTHON_ORACLE# docker images REPOSITORY TAG IMAGE ID CREATED SIZE xiaogp/python_oraqcle v3 bb0100d9c3f5 39 seconds ago 1.1GB
啟動(dòng)鏡像測(cè)試一下
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, '王五')]
可以鏈接,制作結(jié)束
以上就是使用Docker制作Python環(huán)境連接Oracle鏡像的詳細(xì)內(nèi)容,更多關(guān)于docker鏡像Python環(huán)境連接Oracle的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python數(shù)據(jù)分析應(yīng)用之Matplotlib數(shù)據(jù)可視化詳情
這篇文章主要介紹了Python數(shù)據(jù)分析應(yīng)用之Matplotlib數(shù)據(jù)可視化詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-06-06用Python實(shí)現(xiàn)斐波那契(Fibonacci)函數(shù)
這篇文章主要介紹了用Python實(shí)現(xiàn)斐波那契(Fibonacci)函數(shù)的相關(guān)資料,需要的朋友可以參考下2016-03-03python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5簡(jiǎn)單繪圖板實(shí)例與代碼分析
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5簡(jiǎn)單繪圖板實(shí)例與代碼分析,需要的朋友可以參考下2020-03-03pycharm中虛擬環(huán)境venv簡(jiǎn)介以及實(shí)踐指南
這篇文章主要給大家介紹了關(guān)于pycharm中虛擬環(huán)境venv簡(jiǎn)介以及實(shí)踐的相關(guān)資料,虛擬環(huán)境是利用了操作系統(tǒng)中環(huán)境變量,以及進(jìn)程間環(huán)境隔離的特性,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10教你使用TensorFlow2識(shí)別驗(yàn)證碼
驗(yàn)證碼是根據(jù)隨機(jī)字符生成一幅圖片,然后在圖片中加入干擾象素,本文主要介紹了 TensorFlow2識(shí)別驗(yàn)證碼,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06Python 單例設(shè)計(jì)模式用法實(shí)例分析
這篇文章主要介紹了Python 單例設(shè)計(jì)模式用法,結(jié)合實(shí)例形式分析了Python單例模式的具體定義與使用操作技巧,需要的朋友可以參考下2019-09-09Django使用Channels實(shí)現(xiàn)WebSocket的方法
WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通訊的協(xié)議。WebSocket允許服務(wù)端主動(dòng)向客戶(hù)端推送數(shù)據(jù)。這篇文章主要介紹了Django使用Channels實(shí)現(xiàn)WebSocket,需要的朋友可以參考下2019-07-07淺談python中常用的8種經(jīng)典數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了python中常用的8種經(jīng)典數(shù)據(jù)結(jié)構(gòu),包括原生數(shù)據(jù)結(jié)構(gòu),NumPy包中的數(shù)據(jù)結(jié)構(gòu),以及Pandas包中的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-03-03