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/zh-tw/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
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬碟。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

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

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

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

    本文將分享如何使用Python編寫一個簡單的照片漫畫生成器,本文所提到的所有代碼和技術都適用於初學者。 一、環境準備 在開始編寫代碼之前,我們需要準備一些必要的環境。 首先,需要安…

    編程 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

發表回復

登錄後才能評論