Docker Alpine安装oracle客户端

  1. 进入docker容器
docker run -it --name=容器名 镜像名:latest /bin/sh       由镜像创建容器并进入(只有镜像无容器)
或
docker exec -it 容器名 /bin/sh                          直接进入运行中的容器
  1. 安装必要包
apk add libaio, libnsl, unzip
  1. 下载解压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: 多半是下载的文件有问题, 重新下载就可以

  1. 添加环境变量
# 通过查看 /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
  1. 提交镜像
docker commit -a 'laowang' 容器名 镜像名:1.0.0
  1. 换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客户端相关推荐

  1. 根据镜像安装oracle插件,docker镜像alpine中安装oracle客户端

    1.背景 有项目需使用python连接oracle数据库,然后查询一些数据进行分析.在安装oracle客户端驱动过程中遇到了一些问题,在此记录下来分享读者. 一点限制: oracle数据库与本应用程序 ...

  2. linux oracle 远程exp_linux单独安装oracle客户端及exp/imp工具配置

    本篇文章的操作在实际环境中进行过测试! 闲话少说,直接进入正文,下面为大家介绍在linux环境中如何单独配置oracle客户端去远程访问oracle数据库. 1.下载 Linux 下的 Oracle ...

  3. 不安装Oracle客户端使用PLSQL

    不安装Oracle客户端使用PLSQL 要连接Oracle往往需要安装上百兆的ORACLE客户端,显得十分麻烦.先就介绍如何通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据 ...

  4. 连接oracle10g数据库免安装oracle客户端解决办法 (转载)

    首先,在安装ORACLE服务器的机器上搜索下列文件, oci.dll ocijdbc10.dll ociw32.dll orannzsbb10.dll oraocci10.dll oraociei10 ...

  5. PLSQL安装教程,无需oracle客户端(解决本地需要安装oracle客户端的烦恼)

    最近用笔记本开发,项目用的是Oracle数据库,不想本地安装Oracle客户端. 就只装了一个PLSQL 连接数据库的时候各种错误,现在解决了记录一下. 详细内容见  附件  1.运行 plsqlde ...

  6. 在Mac OS X上安装Oracle客户端

    在Mac OS X上安装Oracle客户端 在mac上安装oracle客户端 官网下载页面 http://www.oracle.com/technetwork/topics/intel-macsoft ...

  7. 免安装Oracle客户端使用PL/SQL连接Oracle

    免安装Oracle客户端使用PL/SQL连接Oracle       大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Orac ...

  8. PL/SQL TOAD 不安装Oracle客户端连接数据库的方法

    不安装Oracle客户端连接数据库的方法 本机环境: win7 64位中文旗舰版 一.准备工作: 1)到ORACLE官网下载instantclient,下载地址:http://www.oracle.c ...

  9. 没有oracle客户端可以连接数据库,Oracle数据库之SqlDbx连接oracle(无需安装Oracle客户端)...

    本文主要向大家介绍了Oracle数据库之SqlDbx连接oracle(无需安装Oracle客户端),通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 标签:acl   str    ...

  10. plsql免oracle客户端配置,PLSQL DEVELOPER 配置免安装ORACLE客户端

    PLSQL DEVELOPER 配置免安装ORACLE客户端的方法 1.文件包结构 D:/PLSQL/PLSQL DEVELOPER D:/PLSQL/instantclinet_11_2 2.配置环 ...

最新文章

  1. 4名矿工控制50%算力 去中心化是不是谎言?
  2. DNS浅析-Bind软件的使用及搭建一个简单的DNS缓存服务器
  3. boost::hash_combine模块实现json哈希值的测试程序
  4. 小白的算法初识课堂(part8)--贪婪算法
  5. ABAP 引用类型介绍
  6. python选择题题库百度文库_大学Python程序题题库
  7. Android广播(笔记)
  8. 136.只出现一次的数字
  9. 微软再现宕机事故 部分用户9天无法使用电邮
  10. 【转】 详解C中volatile关键字
  11. 计算机系统资源分配最小单位,在操作系统中,什么是资源分配最小单位
  12. 结束SpringMVC
  13. opengl入门(ubuntu版)(一)
  14. [转]关于java的动态代理
  15. Delphi 7 ADO使用
  16. 谷歌退出刺激百度股价大涨
  17. 他忽悠了马云 10 个亿,10 年后还给马云 4500 亿
  18. html中图片上下左右留白,vertical-align垂直居中( 消除html中图片下边缘留白 )
  19. 【C4D周练作业061-070】用C4D做了个锤子~
  20. Python基础—内置函数、匿名函数、递归函数

热门文章

  1. php laravel手册,【laravel7.x中文文档】集合
  2. 怎样用stm32驱动ds18b20温度芯片
  3. 中兴b860刷机运行Linux,整理 B860A 刷机,安装第三方,升降固件,进recovery
  4. 2019年考研篇(2020毕业)
  5. 快易省智:数据中心UPS四大演进方向
  6. 连接mysql集群_mysql集群
  7. HTML+CSS+JS制作炫酷特效代码
  8. 华三H3C交换机如何配置和使用telnet远程登录设备
  9. .mcs与.bin文件格式有什么区别?
  10. verilog入门-38译码器