Docker Alpine安装oracle客户端
Docker Alpine安装oracle客户端
- 进入docker容器
docker run -it --name=容器名 镜像名:latest /bin/sh 由镜像创建容器并进入(只有镜像无容器)
或
docker exec -it 容器名 /bin/sh 直接进入运行中的容器
- 安装必要包
apk add libaio, libnsl, unzip
- 下载解压oracle basic包
需要对应服务器版本, 命令
select * from v$version;
各版本下载地址(32位): https://www.oracle.com/database/technologies/instant-client/linux-x86-32-downloads.html
各版本下载地址(64位): https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
# 下载basic免安装zip包, 需要登录验证, 所以下载链接不能复用, 要在上面链接中找对应版本下载# 弄个单独目录存
cd /usr/local
mkdir oracle
cd oracle# wget -c 支持断点续传
wget -c https://download.oracle.com/otn/linux/instantclient/11204/instantclient-basic-linux.x64-11.2.0.4.0.zip
?AuthParam=1644827926_6725c450378f19288cb3dc5d040b8a18# unzip 解压
unzip instantclient-basic-linux.x64-11.2.0.4.0.zip?AuthParam\=1644827926_6725c450378f19288cb3dc5d040b8a18# 整理下文件
mv ./instantclient_11_2/* ./
rmdir instantclient_11_2
unzip End-of-central-directory signature not found: 多半是下载的文件有问题, 重新下载就可以
- 添加环境变量
# 通过查看 /etc/profile 可以看到会加载 /etc/profile.d/目录下的 .sh结尾的文件# 弄个单独的环境变量配置文件
vi /etc/profile.d/oracle.shexport ORACLE_HOME=/usr/local/oracle
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH# 测试下加上没有
source /etc/profile
echo $PATH# 退出容器
exit
注: 这里会有很多奇怪的报错, 以下为作者碰到的
报错1. Error loading shared library /usr/local/oracle/lib/libclntsh.so: No such file or directory
(一开始是打算用软链接的, 但是没用, 直接复制就可以了, 不知道为什么)
mkdir /usr/local/oracle/lib cp /usr/local/oracle/libclntsh.so.11.1 /usr/local/oracle/lib/libclntsh.so
报错2.
Error loading shared library libnsl.so.1: No such file or directory (needed by /usr/local/oracle/lib/libclntsh.so
(libnsl.so.1 或 libnsl.so) 建对应软链接ln -s /usr/lib/libnsl.so.2.0.0 /usr/lib/libnsl.so.1 ln -s /usr/lib/libnsl.so.2.0.0 /usr/lib/libnsl.so
- 提交镜像
docker commit -a 'laowang' 容器名 镜像名:1.0.0
- 换docker启动用的镜像版本号
注: 最后会发现环境变量没有加载, 原因未知
绕路解决方法:
- 通过DockerFile直接运行容器的项目: 修改
Dockerfile
文件, 例:CMD source /etc/profile && gunicorn ....
- 通过DockerCompose启动的项目: 修改
docker-compose.yml
文件 例:command: /bin/sh -c "source /etc/profile && gunicorn ...."
python 直连测试代码
import cx_Oracle
conn = cx_Oracle.connect(“user/passwd@host/instance”)
Docker Alpine安装oracle客户端相关推荐
- 根据镜像安装oracle插件,docker镜像alpine中安装oracle客户端
1.背景 有项目需使用python连接oracle数据库,然后查询一些数据进行分析.在安装oracle客户端驱动过程中遇到了一些问题,在此记录下来分享读者. 一点限制: oracle数据库与本应用程序 ...
- linux oracle 远程exp_linux单独安装oracle客户端及exp/imp工具配置
本篇文章的操作在实际环境中进行过测试! 闲话少说,直接进入正文,下面为大家介绍在linux环境中如何单独配置oracle客户端去远程访问oracle数据库. 1.下载 Linux 下的 Oracle ...
- 不安装Oracle客户端使用PLSQL
不安装Oracle客户端使用PLSQL 要连接Oracle往往需要安装上百兆的ORACLE客户端,显得十分麻烦.先就介绍如何通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据 ...
- 连接oracle10g数据库免安装oracle客户端解决办法 (转载)
首先,在安装ORACLE服务器的机器上搜索下列文件, oci.dll ocijdbc10.dll ociw32.dll orannzsbb10.dll oraocci10.dll oraociei10 ...
- PLSQL安装教程,无需oracle客户端(解决本地需要安装oracle客户端的烦恼)
最近用笔记本开发,项目用的是Oracle数据库,不想本地安装Oracle客户端. 就只装了一个PLSQL 连接数据库的时候各种错误,现在解决了记录一下. 详细内容见 附件 1.运行 plsqlde ...
- 在Mac OS X上安装Oracle客户端
在Mac OS X上安装Oracle客户端 在mac上安装oracle客户端 官网下载页面 http://www.oracle.com/technetwork/topics/intel-macsoft ...
- 免安装Oracle客户端使用PL/SQL连接Oracle
免安装Oracle客户端使用PL/SQL连接Oracle 大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Orac ...
- PL/SQL TOAD 不安装Oracle客户端连接数据库的方法
不安装Oracle客户端连接数据库的方法 本机环境: win7 64位中文旗舰版 一.准备工作: 1)到ORACLE官网下载instantclient,下载地址:http://www.oracle.c ...
- 没有oracle客户端可以连接数据库,Oracle数据库之SqlDbx连接oracle(无需安装Oracle客户端)...
本文主要向大家介绍了Oracle数据库之SqlDbx连接oracle(无需安装Oracle客户端),通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 标签:acl str ...
- plsql免oracle客户端配置,PLSQL DEVELOPER 配置免安装ORACLE客户端
PLSQL DEVELOPER 配置免安装ORACLE客户端的方法 1.文件包结构 D:/PLSQL/PLSQL DEVELOPER D:/PLSQL/instantclinet_11_2 2.配置环 ...
最新文章
- 4名矿工控制50%算力 去中心化是不是谎言?
- DNS浅析-Bind软件的使用及搭建一个简单的DNS缓存服务器
- boost::hash_combine模块实现json哈希值的测试程序
- 小白的算法初识课堂(part8)--贪婪算法
- ABAP 引用类型介绍
- python选择题题库百度文库_大学Python程序题题库
- Android广播(笔记)
- 136.只出现一次的数字
- 微软再现宕机事故 部分用户9天无法使用电邮
- 【转】 详解C中volatile关键字
- 计算机系统资源分配最小单位,在操作系统中,什么是资源分配最小单位
- 结束SpringMVC
- opengl入门(ubuntu版)(一)
- [转]关于java的动态代理
- Delphi 7 ADO使用
- 谷歌退出刺激百度股价大涨
- 他忽悠了马云 10 个亿,10 年后还给马云 4500 亿
- html中图片上下左右留白,vertical-align垂直居中( 消除html中图片下边缘留白 )
- 【C4D周练作业061-070】用C4D做了个锤子~
- Python基础—内置函数、匿名函数、递归函数