准备工作
首先寻找个更基础的镜像,怎么选参考了下面这个链接的文章:
https://pythonspeed.com/articles/base-image-python-docker-images/
docker pull python:3.8.3-slim-buster
下载Oracle的客户端
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
这次选的是的
需要登录Oralce的账户才能下载,先在windows下下载zip包,然后用pscp 传输到linux主机
pscp D:\Downloads\instantclient-basic-linux.x64-12.2.0.1.0.zip root@192.168.8.236:/tmp
linux宿主上运行之前下载的镜像
docker run -it python:3.8.3-slim-buster /bin/sh
Debian 的软件源配置文件是 /etc/apt/sources.lis
修改为清华大学的源,因为容器内没有找到文本编辑器,我是宿主机编辑好拷贝到容器
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-freedeb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-freedeb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-freedeb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
更新apt软件包列表,安装unzip
apt updateapt upgrade
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
部署Oracle客户端
首先执行 docker ps 查看目标容器的id,然后拷贝之前下载的Oracle客户端文件到容器内解压及配置
宿主机运行
docker cp /tmp/instantclient-basic-linux.x64-12.2.0.1.0.zip 5b316b53a0df:/opt
容器内运行
cd /optmkdir -p /opt/oraclemv instantclient-basic-linux.x64-12.2.0.1.0.zip ./oraclecd /opt/oracleapt install unzipunzip instantclient-basic-linux.x64-12.2.0.1.0.ziprm instantclient-basic-linux.x64-12.2.0.1.0.zipapt install libaio1sh -c "echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient.conf"ldconfigexport LD_LIBRARY_PATH=/opt/oracle/instantclient_19_3:$LD_LIBRARY_PATHpython -m pip install cx_Oracle --upgrade
宿主机执行
docker commit 5b316b53a0df python-oracledocker tag python-oracle ***.com/arch/python:3.8.3-slim-buster-oracledocker push ***.com/arch/python:3.8.3-slim-buster-oracle
