Docker安裝oracle數(shù)據(jù)庫(kù)最新版教程
1. 安裝 Docker 環(huán)境
首先,確保你的系統(tǒng)已經(jīng)安裝了 Docker 環(huán)境。你可以參考官方文檔來(lái)安裝 Docker:Docker安裝文檔。安裝完成后,確保 Docker 可以正常運(yùn)行。
2. 拉取 Oracle 鏡像
使用 Docker 拉取 Oracle 11g 的鏡像。這里我們使用的是阿里云的 Oracle 11g 鏡像,你也可以根據(jù)需要選擇其他來(lái)源的鏡像。
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
此命令會(huì)從 Docker Hub 拉取一個(gè) 6GB 大小的 Oracle 11g 鏡像,可能需要一段時(shí)間,靜等片刻。
3. 查看鏡像
鏡像拉取完成后,可以使用以下命令查看已下載的 Docker 鏡像:
docker images
成功拉取后,您會(huì)看到類(lèi)似如下的輸出,顯示鏡像的相關(guān)信息:

4. 創(chuàng)建容器
我們可以使用以下命令創(chuàng)建并運(yùn)行一個(gè) Docker 容器:
docker run -d --privileged -p 1521:1521 --name oracle11g --restart=always -v /home/oracle:/data/oracle registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
命令解析:
-d:后臺(tái)運(yùn)行容器。--privileged: 允許掛載數(shù)據(jù)卷,默認(rèn)是讀寫(xiě)權(quán)限r(nóng)w-p 1521:1521:將容器的 1521 端口映射到宿主機(jī)的 1521 端口。--name oracle11g:為該容器命名為oracle11g。oracle 數(shù)據(jù)文件掛載:-v /data/dockerData/oracle:/data/oracle,將容器中的數(shù)據(jù)文件夾 /data/oracle 掛載到宿主機(jī)對(duì)應(yīng)的 /data/dockerData/oracl 文件夾中。registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:使用之前拉取的鏡像。
你還可以編寫(xiě)一個(gè) Shell 腳本,便于下次快速啟動(dòng) Oracle 容器。腳本內(nèi)容如下:
# BEGIN ANSIBLE MANAGED BLOCK #!/bin/bash docker rm -f oracle11; docker run -it -d -p 1521:1521 -v /data/oracle:/data/oracle --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g # END ANSIBLE MANAGED BLOCK
**注意:**不推薦每次都使用腳本啟動(dòng)容器,因?yàn)闉榱吮A羯洗闻渲玫闹?,建議下次直接使用 docker start oracle11 啟動(dòng)。
如果容器創(chuàng)建成功,系統(tǒng)會(huì)返回容器 ID。
5. 進(jìn)入容器進(jìn)行配置
創(chuàng)建并啟動(dòng)容器后,你可以進(jìn)入容器內(nèi)部進(jìn)行配置:
docker exec -it oracle11g bash
此命令會(huì)讓你進(jìn)入 Oracle 容器的 Bash 環(huán)境。
6. 進(jìn)行軟連接
在容器中執(zhí)行以下命令,嘗試使用 sqlplus 工具。如果提示沒(méi)有該命令,你需要切換到 root 用戶(hù):
sqlplus /nolog

切換到 root 用戶(hù):
su root
輸入密碼 helowin(默認(rèn)密碼)。
7. 配置 Oracle 環(huán)境變量
你需要編輯 Oracle 配置文件,設(shè)置環(huán)境變量。執(zhí)行以下命令:
vi /etc/profile
在文件末尾添加以下內(nèi)容:
# 設(shè)置 Oracle 數(shù)據(jù)庫(kù)的安裝目錄 # ORACLE_HOME 是 Oracle 數(shù)據(jù)庫(kù)安裝的根目錄,許多工具和腳本需要依賴(lài)這個(gè)路徑 export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 # 設(shè)置 Oracle 實(shí)例名 # ORACLE_SID(System Identifier)是數(shù)據(jù)庫(kù)實(shí)例的標(biāo)識(shí)符,在 Oracle 中用來(lái)區(qū)分不同的實(shí)例 # 這里設(shè)置為默認(rèn)的實(shí)例名 "helowin",與安裝時(shí)的配置一致 (不設(shè)置默認(rèn)服務(wù)名就是ORCL) export ORACLE_SID=helowin # 將 ORACLE_HOME/bin 添加到 PATH 環(huán)境變量中 # PATH 是系統(tǒng)查找可執(zhí)行程序的路徑列表,將 Oracle 的 bin 目錄加入 PATH,方便直接運(yùn)行 Oracle 命令(如 sqlplus) export PATH=$ORACLE_HOME/bin:$PATH
保存并退出后,執(zhí)行以下命令加載環(huán)境變量:
source /etc/profile
8. 創(chuàng)建軟連接
接下來(lái),創(chuàng)建一個(gè)軟連接,方便在任何地方使用 sqlplus 命令:
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
9. 切換到 Oracle 用戶(hù)
切換到 oracle 用戶(hù)以確保你有足夠的權(quán)限進(jìn)行后續(xù)操作:
su - oracle
10. 登錄 SQL*Plus 并修改 sys、system 用戶(hù)密碼
通過(guò) SQL*Plus 登錄并修改 sys 和 system 用戶(hù)的默認(rèn)密碼:
# 1. 登錄 SQL*Plus # 使用 /nolog 命令啟動(dòng) sqlplus,并且不立即連接到任何用戶(hù) sqlplus /nolog # 2. 連接數(shù)據(jù)庫(kù)并使用 SYSDBA 權(quán)限 # 通過(guò)以下命令使用 SYSDBA 權(quán)限連接到數(shù)據(jù)庫(kù) # 該命令表示通過(guò)操作系統(tǒng)身份驗(yàn)證以 sysdba 權(quán)限連接數(shù)據(jù)庫(kù),擁有最高管理員權(quán)限。 conn /as sysdba # 3. 修改 system 用戶(hù)的密碼 # system 是 Oracle 數(shù)據(jù)庫(kù)中的一個(gè)管理員賬戶(hù),修改默認(rèn)的密碼為更安全的密碼 # 這里將密碼設(shè)置為 system(可以自行修改為更復(fù)雜的密碼) alter user system identified by system; # 4. 修改 sys 用戶(hù)的密碼 # sys 用戶(hù)是 Oracle 數(shù)據(jù)庫(kù)的另一個(gè)管理員賬戶(hù),修改 sys 用戶(hù)的默認(rèn)密碼 # 同樣可以將密碼設(shè)置為更復(fù)雜的值 alter user sys identified by system; # 5. 創(chuàng)建新用戶(hù) test # 創(chuàng)建一個(gè)新的普通用戶(hù) test,并設(shè)置其密碼為 test # 新用戶(hù)創(chuàng)建后,可以根據(jù)需求授予其特定的權(quán)限 create user test identified by test; # 6. 授予 test 用戶(hù) DBA 權(quán)限 # 這里我們?yōu)樾聞?chuàng)建的 test 用戶(hù)授予了 DBA 權(quán)限,使其能夠進(jìn)行數(shù)據(jù)庫(kù)的管理操作 # 注意:可以根據(jù)實(shí)際需求調(diào)整授予的權(quán)限 grant connect, resource, dba to test; # 7. 設(shè)置密碼永不過(guò)期 # Oracle 默認(rèn)有一個(gè)密碼過(guò)期策略,這里我們將密碼策略設(shè)置為永不過(guò)期 # 這將防止在測(cè)試和開(kāi)發(fā)環(huán)境中因密碼過(guò)期而中斷使用 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; # 8. 修改數(shù)據(jù)庫(kù)最大連接數(shù) # 默認(rèn)情況下,Oracle 數(shù)據(jù)庫(kù)的最大連接數(shù)是有限的,如果需要支持更多并發(fā)連接,可以調(diào)整該參數(shù) # 這條命令將數(shù)據(jù)庫(kù)最大連接數(shù)設(shè)置為 1000,并保存在 spfile 中 # 需要重啟數(shù)據(jù)庫(kù)后才能生效 alter system set processes=1000 scope=spfile; # 執(zhí)行完以上命令后,我們完成了用戶(hù)密碼修改、新用戶(hù)創(chuàng)建、權(quán)限授予、密碼策略配置和數(shù)據(jù)庫(kù)配置

11. 重新啟動(dòng)數(shù)據(jù)庫(kù)
修改完數(shù)據(jù)庫(kù)用戶(hù)和設(shè)置后,需要重新啟動(dòng) Oracle 數(shù)據(jù)庫(kù)。執(zhí)行以下命令:
conn /as sysdba shutdown immediate; -- 關(guān)閉數(shù)據(jù)庫(kù) startup; -- 啟動(dòng)數(shù)據(jù)庫(kù)
12. 解決 “Database Not Open” 錯(cuò)誤
在執(zhí)行 alter user 命令時(shí),有時(shí)可能會(huì)遇到如下錯(cuò)誤:
ORA-01507: database not open
如果你遇到此問(wèn)題,可以按照以下步驟解決:
- 先輸入以下命令掛載數(shù)據(jù)庫(kù):
alter database mount;
- 然后再輸入:
alter database open;
完成后就可以執(zhí)行修改密碼的操作了。
修改完后,再次執(zhí)行 ALTER PROFILE 語(yǔ)句,設(shè)置密碼永不過(guò)期:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
執(zhí)行完畢后,輸入 exit 退出 SQL*Plus。

13. Navicat 連接測(cè)試
成功完成數(shù)據(jù)庫(kù)配置后,可以使用 Navicat 或其他數(shù)據(jù)庫(kù)管理工具測(cè)試連接。確??梢皂樌B接到數(shù)據(jù)庫(kù):

總結(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容器中的PostgreSQL數(shù)據(jù)的圖文實(shí)操教程
現(xiàn)在docker容器很方便,可以一鍵部署項(xiàng)目,但是方便部署的同時(shí),也給運(yùn)維帶來(lái)了麻煩,docker中的pgsql數(shù)據(jù),如何進(jìn)行備份呢,本文小編給大家就介紹了備份Docker容器中的PostgreSQL數(shù)據(jù)的圖文實(shí)操教程,需要的朋友可以參考下2024-09-09
Docker容器運(yùn)行ASP.NET Core的實(shí)現(xiàn)步驟
這篇文章主要介紹了Docker容器運(yùn)行ASP.NET Core的實(shí)現(xiàn)步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
使用Docker快速運(yùn)行Firefox并實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)本地火狐瀏覽器的詳細(xì)過(guò)程
文章介紹了如何在Docker中運(yùn)行Firefox瀏覽器,并通過(guò)Cpolar內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)遠(yuǎn)程訪問(wèn),步驟包括部署Firefox、本地訪問(wèn)、安裝Cpolar、配置公網(wǎng)地址、設(shè)置固定二級(jí)子域名等,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-02-02
docker環(huán)境下數(shù)據(jù)庫(kù)的備份(postgresql, mysql) 實(shí)例代碼
這篇文章主要介紹了docker環(huán)境下數(shù)據(jù)庫(kù)的備份(postgresql, mysql) ,需要的朋友可以參考下2019-05-05
Docker部署Kafka以及Spring Kafka實(shí)現(xiàn)
這篇文章主要介紹了Docker部署Kafka以及Spring Kafka實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10

