Docker安装Oracle数据库完整教程

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更加方便、高效、便于维护和升级。希望这篇教程能对您有所帮助。

原创文章,作者:QKMAE,如若转载,请注明出处:https://www.506064.com/n/335055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
QKMAE的头像QKMAE
上一篇 2025-02-05 13:05
下一篇 2025-02-05 13:06

相关推荐

  • MQTT使用教程

    MQTT是一种轻量级的消息传输协议,适用于物联网领域中的设备与云端、设备与设备之间的数据传输。本文将介绍使用MQTT实现设备与云端数据传输的方法和注意事项。 一、准备工作 在使用M…

    编程 2025-04-29
  • Python3.6.5下载安装教程

    Python是一种面向对象、解释型计算机程序语言。它是一门动态语言,因为它不会对程序员提前声明变量类型,而是在变量第一次赋值时自动识别该变量的类型。 Python3.6.5是Pyt…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • 打造照片漫画生成器的完整指南

    本文将分享如何使用Python编写一个简单的照片漫画生成器,本文所提到的所有代码和技术都适用于初学者。 一、环境准备 在开始编写代码之前,我们需要准备一些必要的环境。 首先,需要安…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • docker-ce-18.03.1.ce-1.el7.centos.x86_64需要pigz这个依赖的解决方案

    当我们在linux centos系统中安装docker-ce-18.03.1.ce-1.el7.centos.x86_64时,有时可能会遇到“nothing provides pi…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python中文版下载官网的完整指南

    Python是一种广泛使用的编程语言,具有简洁、易读易写等特点。Python中文版下载官网是Python学习和使用过程中的重要资源,本文将从多个方面对Python中文版下载官网进行…

    编程 2025-04-29

发表回复

登录后才能评论