在Docker中安裝Oracle數(shù)據(jù)庫(kù)超詳細(xì)步驟
前言
在這篇博客中,我們將探討如何使用 Docker 容器輕松地安裝和運(yùn)行 Oracle 數(shù)據(jù)庫(kù)。Docker 提供了一種簡(jiǎn)便的方式,通過(guò)容器化,我們可以在任何支持 Docker 的環(huán)境中快速部署 Oracle 數(shù)據(jù)庫(kù)。
步驟概覽
步驟 1:安裝 Docker
首先,確保你的系統(tǒng)上已經(jīng)安裝了 Docker。你可以根據(jù)官方文檔(Docker 官方文檔)提供的指南進(jìn)行安裝。
步驟 2:獲取 Oracle 11g Docker 鏡像
在 Docker Hub 上,有許多社區(qū)提供的 Oracle 數(shù)據(jù)庫(kù)鏡像。你可以選擇合適的版本。例如,我將使用 阿里的oracle-11g 鏡像。
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

步驟 3:運(yùn)行 Oracle 11g 容器(我選擇持久化)
使用以下命令運(yùn)行 Oracle 11g 容器:
默認(rèn)啟動(dòng)容器的方式
docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
-d: 表示以后臺(tái)運(yùn)行的方式啟動(dòng)容器。-it: 分別表示分配一個(gè)偽終端(pseudo-TTY)并保持 STDIN 打開(kāi)。-p 1521:1521: 將主機(jī)的端口映射到容器的端口,這里是將主機(jī)的 1521 端口映射到容器的 1521 端口,用于訪問(wèn) Oracle 數(shù)據(jù)庫(kù)。--name oracle11g: 為容器指定一個(gè)名稱,這里是 "oracle11g"。--restart=always: 表示當(dāng)容器退出時(shí),總是重新啟動(dòng)容器。
持久化啟動(dòng)的方式
docker run -d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
與默認(rèn)啟動(dòng)方式相比,增加了一個(gè) --mount 選項(xiàng),用于將一個(gè)卷(volume)掛載到容器的指定路徑。
--mount source=oracle_vol,target=/home/oracle/app/oracle/oradata: 將名為 "oracle_vol" 的 Docker 卷掛載到容器中的 "/home/oracle/app/oracle/oradata" 路徑。這樣做的目的是將 Oracle 數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)在持久化的卷中,以便數(shù)據(jù)在容器重啟時(shí)得以保留。
這兩種方式的選擇取決于你的需求。如果你希望容器在重啟時(shí)保留數(shù)據(jù),可以選擇使用掛載卷的方式,這樣可以確保數(shù)據(jù)持久化。如果你對(duì)數(shù)據(jù)的持久性沒(méi)有特殊要求,可以使用默認(rèn)的啟動(dòng)方式。
步驟 4:進(jìn)入 Oracle 容器
通過(guò)以下命令進(jìn)入 Oracle 容器的 shell: 這個(gè)容器名稱對(duì)應(yīng)你之前--name的參數(shù)
docker exec -it 容器名稱 bash
步驟 5:在 Oracle 容器內(nèi)部進(jìn)行配置
進(jìn)入容器后切換到root用戶,設(shè)置環(huán)境變量

有說(shuō)修改/etc/profile也有說(shuō)修改/home/oracle/.bashrc 這里選擇全都修改
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=helowin export PATH=$ORACLE_HOME/bin:$PATH #末尾加上

修改完之后source一下
source /etc/profile source /home/oracle/.bashrc
切換回oracle用戶
su - oracle
進(jìn)入oracle的命令行
sqlplus /nolog
接下來(lái)可以做一些修改密碼啊 等等的操作 舉個(gè)例子如下:
CONNECT / AS SYSDBA; alter user system identified by 新密碼; 修改system密碼 CREATE USER 用戶 IDENTIFIED BY 新密碼; 新建用戶設(shè)置密碼 GRANT CREATE SESSION TO 用戶; GRANT CREATE TABLE TO 用戶; ALTER USER 用戶 QUOTA UNLIMITED ON USERS;
CONNECT / AS SYSDBA;
以 SYSDBA 角色連接到數(shù)據(jù)庫(kù)。 使用 SYSDBA 角色登錄,該角色具有最高級(jí)別的數(shù)據(jù)庫(kù)權(quán)限,允許進(jìn)行系統(tǒng)級(jí)別的管理任務(wù)。alter user system identified by 密碼;
修改系統(tǒng)用戶(system)的登錄密碼。CREATE USER hhhhh IDENTIFIED BY 密碼;
創(chuàng)建一個(gè)新用戶 hhhhh,并指定其登錄密碼。GRANT CREATE SESSION TO hhhhh;
允許用戶 hhhhh連接到數(shù)據(jù)庫(kù)。GRANT CREATE TABLE TO hhhhh;
允許用戶 hhhhh在數(shù)據(jù)庫(kù)中創(chuàng)建新的表。ALTER USER hhhhh QUOTA UNLIMITED ON USERS;
設(shè)置用戶 hhhhh 在表空間 USERS 上的存儲(chǔ)配額為無(wú)限制,允許用戶存儲(chǔ)數(shù)據(jù)。
開(kāi)啟遠(yuǎn)程連接(修改監(jiān)聽(tīng))
exit; 先退出剛才oracle命令行,已退出來(lái)的不用管了 cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin
在 /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin 目錄下,你可能會(huì)找到以下一些重要的配置文件:
listener.ora: 這個(gè)文件包含了 Oracle 數(shù)據(jù)庫(kù)監(jiān)聽(tīng)器的配置信息。你可以在這里指定監(jiān)聽(tīng)的端口、協(xié)議、監(jiān)聽(tīng)地址等。
tnsnames.ora: 這個(gè)文件包含了數(shù)據(jù)庫(kù)連接的別名和連接信息。你可以在這里定義數(shù)據(jù)庫(kù)的連接方式。
sqlnet.ora: 這個(gè)文件包含了 SQL*Net 的配置信息,定義了 Oracle 客戶端與服務(wù)器之間的通信參數(shù)。
這里目前修改tnsnames.ora和listener.ora,把他們的hosts改為你訪問(wèn)的ip我這測(cè)試環(huán)境直接全放了0.0.0.0

和


systemctl restart docker
步驟 6:連接到 Oracle 數(shù)據(jù)庫(kù)
最后,我使用nacivat連接(阿里的這個(gè)鏡像,所有的密碼都是統(tǒng)一的 helowin) 如果沒(méi)修改的話直接用helowin登錄就好

這只是一個(gè)簡(jiǎn)要的指南,具體的步驟可能會(huì)根據(jù)使用的 Oracle Docker 鏡像版本而有所不同。在實(shí)際操作中,請(qǐng)確保遵循相關(guān)文檔并保持對(duì) Oracle 數(shù)據(jù)庫(kù)許可的合規(guī)性。
總結(jié)
到此這篇關(guān)于在Docker中安裝Oracle數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)Docker安裝Oracle數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker服務(wù)及容器設(shè)置服務(wù)器開(kāi)機(jī)自動(dòng)啟動(dòng)方式
這篇文章主要介紹了Docker服務(wù)及容器設(shè)置服務(wù)器開(kāi)機(jī)自動(dòng)啟動(dòng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2026-03-03
Docker容器定時(shí)備份數(shù)據(jù)庫(kù)并發(fā)送到指定郵箱(設(shè)計(jì)思路)
這篇文章主要介紹了Docker容器定時(shí)備份數(shù)據(jù)庫(kù)并發(fā)送到指定郵箱,文中寫(xiě)了一下shell腳本,邏輯也很簡(jiǎn)單,當(dāng)前時(shí)間與啟動(dòng)時(shí)間相同時(shí),則調(diào)用sendmail函數(shù)發(fā)送郵件,具體腳本跟隨小編一起看看吧2022-01-01
Docker學(xué)習(xí)筆記之容器查看啟動(dòng)終止刪除的方法
本篇文章主要Docker學(xué)習(xí)筆記之容器查看啟動(dòng)終止刪除的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
docker-desktop啟動(dòng)k8s的詳細(xì)方法
這篇文章主要介紹了docker-desktop啟動(dòng)k8s,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
詳解Docker創(chuàng)建Mysql容器并通過(guò)命令行連接到容器
本篇文章主要介紹了Docker創(chuàng)建Mysql容器并通過(guò)命令行連接到容器,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
CentOS系統(tǒng)下docker的安裝配置及使用介紹
這篇文章主要介紹了CentOS系統(tǒng)下docker的安裝配置及使用詳細(xì)介紹,需要的朋友可以參考下2016-10-10
解決Docker啟動(dòng)Elasticsearch7.x報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決Docker啟動(dòng)Elasticsearch7.x報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
淺談docker compose書(shū)寫(xiě)規(guī)則
這篇文章主要介紹了淺談docker compose書(shū)寫(xiě)規(guī)則,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
docker安裝jiacrontab可視化任務(wù)管理工具詳解
jiacrontab 是基于 Web 的可視化定時(shí)任務(wù)管理工具,由 server(調(diào)度多 client)和 client(執(zhí)行腳本)通過(guò) RPC 通信構(gòu)成,支持超時(shí)處理、并發(fā)控制、依賴管理及兼容 Linux crontab 格式,便于多服務(wù)器統(tǒng)一管理2025-07-07

