Oracle是大型企业数据库管理系统,为企业级应用提供了高可用性和可伸缩性。在Docker容器化技术的帮助下,Oracle可以更方便、更高效地管理和部署。本篇文章将为大家提供Docker安装Oracle数据库的完整教程。
一、安装Docker
安装Docker前需要先卸载旧版并进行更新,在安装Docker之前,需要先在系统中更新内核版本,否则会造成安装过程中的兼容性问题。以下给出更新内核版本和安装Docker的详细步骤。
1、更新内核
sudo yum update -y
sudo reboot
2、添加Docker官方源并安装Docker
sudo yum remove -y docker-ce docker-ce-cli containerd.io # 卸载旧版
sudo yum install -y yum-utils # 安装工具包,用于获取Docker官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 添加Docker官方源
sudo yum install -y docker-ce docker-ce-cli containerd.io # 安装Docker
sudo systemctl start docker # 启动Docker并设置为开机启动
sudo systemctl enable docker
二、下载Oracle数据库安装文件
在Oracle官网下载页面下载所需版本的Oracle数据库安装文件。需要注意的是,Oracle数据库的安装文件很大,具体大小根据不同版本而定。本教程使用的是Oracle 19c的Linux版本,大小约为5.5GB。
三、构建Oracle数据库Docker镜像
在下载完Oracle数据库安装文件之后,需要使用Dockerfile构建一个Oracle数据库的Docker镜像。
1、创建文件夹和文件
sudo mkdir -p /opt/oracle && cd /opt/oracle # 创建文件夹
sudo touch Dockerfile # 创建Dockerfile
2、将Oracle安装文件复制到指定文件夹下
将下载的Oracle安装文件复制到/opt/oracle下,然后解压缩。
sudo cp /path/to/oracle/linuxx64_12201_database.zip /opt/oracle/
cd /opt/oracle
sudo unzip linuxx64_12201_database.zip
3、编辑Dockerfile
使用vim编辑器打开Dockerfile,并粘贴以下内容:
FROM oraclelinux:7-slim
ADD oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm /tmp/
ADD linuxx64_12201_database.zip /tmp/
RUN yum -y install oracle-database-preinstall-19c && \
rm -rf /var/cache/yum/* && \
mkdir /opt/oracle && \
unzip /tmp/linuxx64_12201_database.zip -d /opt/oracle && \
rm /tmp/linuxx64_12201_database.zip && \
rpm -ivh /tmp/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm && \
rm /tmp/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
ENV ORACLE_SID=ORCLCDB \
ORACLE_PDB=ORCLPDB1 \
ORACLE_PWD=oracle \
ORACLE_CHARACTERSET=AL32UTF8
ADD init.sql /opt/oracle/
ADD initXe.sql /opt/oracle/
# 修改权限,否则报错
RUN chown -R oracle:oinstall /opt/oracle && \
chmod -R 775 /opt/oracle && \
echo "oracle:oracle" | chpasswd
ADD /entrypoint.sh /entrypoint.sh
RUN chmod a+x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 1521 5500
CMD ["/opt/oracle/runOracle.sh"]
保存并退出后,执行以下命令构建Docker镜像:
sudo docker build -t oracle/database:19.3.0-ee . # 注意后面有一个英文句号
四、运行Oracle数据库Docker容器
在构建好Oracle数据库的Docker镜像后,就可以运行容器来操作数据库了。运行容器时需要注意使用docker run命令的一些参数,主要是用户、文件夹映射和端口设置等。
sudo docker run --name oracle \
-p 1521:1521 -p 5500:5500 \
--restart=always \
--detach=true \
--shm-size="8g" \
-e TZ=Asia/Shanghai \
-v /opt/oracle:/ORCL \
oracle/database:19.3.0-ee
其中:
--name
:为Docker容器起一个名称-p
:指定容器端口号和主机端口号的映射,这里设置1521是为了访问数据库,5500是为了访问Web应用程序Express-v
:指定宿主机目录和容器内部目录的映射,这里将/opt/oracle和/ORCL映射到一起,容器内的数据会保存在/opt/oracle目录下,宿主机可以通过挂载此目录访问--shm-size
:指定共享内存的大小,这对于Oracle数据库的正常运行至关重要-e
:设置环境变量,这里设置时区为亚洲/上海,确保时间一致
五、连接Oracle数据库
运行container的时候,我们可以在容器运行后的日志中看到以下默认连接详情:
ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: oracle
ORACLE DATABASE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: oracle
ORACLE AUTO GENERATED PASSWORD FOR ORACLE APEX ADMIN ACCOUNTS: GnoVYF9Kiu.
ORACLE CHARACTER SET is AL32UTF8
This is a non CDB database
根据上面提供的连接信息去使用SQL Plus去进行连接即可。
sqlplus system/oracle@//localhost:1521/ORCLCDB
六、总结
通过本篇文章的介绍,您已经学会了使用Docker快速搭建Oracle数据库的方法,相比传统的安装方式,Docker更加方便、高效、便于维护和升级。希望这篇教程能对您有所帮助。