在Docker中安裝Oracle數(shù)據(jù)庫超詳細(xì)步驟
前言
在這篇博客中,我們將探討如何使用 Docker 容器輕松地安裝和運行 Oracle 數(shù)據(jù)庫。Docker 提供了一種簡便的方式,通過容器化,我們可以在任何支持 Docker 的環(huán)境中快速部署 Oracle 數(shù)據(jù)庫。
步驟概覽
步驟 1:安裝 Docker
首先,確保你的系統(tǒng)上已經(jīng)安裝了 Docker。你可以根據(jù)官方文檔(Docker 官方文檔)提供的指南進(jìn)行安裝。
步驟 2:獲取 Oracle 11g Docker 鏡像
在 Docker Hub 上,有許多社區(qū)提供的 Oracle 數(shù)據(jù)庫鏡像。你可以選擇合適的版本。例如,我將使用 阿里的oracle-11g 鏡像。
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
步驟 3:運行 Oracle 11g 容器(我選擇持久化)
使用以下命令運行 Oracle 11g 容器:
默認(rèn)啟動容器的方式
docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
-d
: 表示以后臺運行的方式啟動容器。-it
: 分別表示分配一個偽終端(pseudo-TTY)并保持 STDIN 打開。-p 1521:1521
: 將主機(jī)的端口映射到容器的端口,這里是將主機(jī)的 1521 端口映射到容器的 1521 端口,用于訪問 Oracle 數(shù)據(jù)庫。--name oracle11g
: 為容器指定一個名稱,這里是 "oracle11g"。--restart=always
: 表示當(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)啟動方式相比,增加了一個 --mount
選項,用于將一個卷(volume)掛載到容器的指定路徑。
--mount source=oracle_vol,target=/home/oracle/app/oracle/oradata
: 將名為 "oracle_vol" 的 Docker 卷掛載到容器中的 "/home/oracle/app/oracle/oradata" 路徑。這樣做的目的是將 Oracle 數(shù)據(jù)庫的數(shù)據(jù)存儲在持久化的卷中,以便數(shù)據(jù)在容器重啟時得以保留。
這兩種方式的選擇取決于你的需求。如果你希望容器在重啟時保留數(shù)據(jù),可以選擇使用掛載卷的方式,這樣可以確保數(shù)據(jù)持久化。如果你對數(shù)據(jù)的持久性沒有特殊要求,可以使用默認(rèn)的啟動方式。
步驟 4:進(jìn)入 Oracle 容器
通過以下命令進(jìn)入 Oracle 容器的 shell: 這個容器名稱對應(yīng)你之前--name的參數(shù)
docker exec -it 容器名稱 bash
步驟 5:在 Oracle 容器內(nèi)部進(jìn)行配置
進(jìn)入容器后切換到root用戶,設(shè)置環(huán)境變量
有說修改/etc/profile也有說修改/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
接下來可以做一些修改密碼啊 等等的操作 舉個例子如下:
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ù)庫。 使用 SYSDBA 角色登錄,該角色具有最高級別的數(shù)據(jù)庫權(quán)限,允許進(jìn)行系統(tǒng)級別的管理任務(wù)。alter user system identified by 密碼;
修改系統(tǒng)用戶(system)的登錄密碼。CREATE USER hhhhh IDENTIFIED BY 密碼;
創(chuàng)建一個新用戶 hhhhh,并指定其登錄密碼。GRANT CREATE SESSION TO hhhhh;
允許用戶 hhhhh連接到數(shù)據(jù)庫。GRANT CREATE TABLE TO hhhhh;
允許用戶 hhhhh在數(shù)據(jù)庫中創(chuàng)建新的表。ALTER USER hhhhh QUOTA UNLIMITED ON USERS;
設(shè)置用戶 hhhhh 在表空間 USERS 上的存儲配額為無限制,允許用戶存儲數(shù)據(jù)。
開啟遠(yuǎn)程連接(修改監(jiān)聽)
exit; 先退出剛才oracle命令行,已退出來的不用管了 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
目錄下,你可能會找到以下一些重要的配置文件:
listener.ora: 這個文件包含了 Oracle 數(shù)據(jù)庫監(jiān)聽器的配置信息。你可以在這里指定監(jiān)聽的端口、協(xié)議、監(jiān)聽地址等。
tnsnames.ora: 這個文件包含了數(shù)據(jù)庫連接的別名和連接信息。你可以在這里定義數(shù)據(jù)庫的連接方式。
sqlnet.ora: 這個文件包含了 SQL*Net 的配置信息,定義了 Oracle 客戶端與服務(wù)器之間的通信參數(shù)。
這里目前修改tnsnames.ora和listener.ora,把他們的hosts改為你訪問的ip我這測試環(huán)境直接全放了0.0.0.0
和
systemctl restart docker
步驟 6:連接到 Oracle 數(shù)據(jù)庫
最后,我使用nacivat連接(阿里的這個鏡像,所有的密碼都是統(tǒng)一的 helowin
) 如果沒修改的話直接用helowin登錄就好
這只是一個簡要的指南,具體的步驟可能會根據(jù)使用的 Oracle Docker 鏡像版本而有所不同。在實際操作中,請確保遵循相關(guān)文檔并保持對 Oracle 數(shù)據(jù)庫許可的合規(guī)性。
總結(jié)
到此這篇關(guān)于在Docker中安裝Oracle數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Docker安裝Oracle數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
win10環(huán)境下安裝Docker的實現(xiàn)
這篇文章主要介紹了win10環(huán)境下安裝Docker的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Docker使用Dockerfile來創(chuàng)建鏡像
本篇文章主要介紹了Docker使用Dockerfile來創(chuàng)建鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04使用Nexus創(chuàng)建Docker倉庫的方法步驟
這篇文章主要介紹了使用Nexus創(chuàng)建Docker倉庫的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12dockerExecute 函數(shù)和docker.build的區(qū)別解析
dockerExecute 通常是一個自定義的函數(shù)或者由特定的 Jenkins 庫(如 piper-lib)提供,用于在 Docker 容器中執(zhí)行特定的命令,這篇文章主要介紹了dockerExecute 函數(shù)和docker.build的區(qū)別,需要的朋友可以參考下2024-12-12Docker 基礎(chǔ)網(wǎng)絡(luò)配置詳解
這篇文章主要介紹了Docker 基礎(chǔ)網(wǎng)絡(luò)配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09Gitlab-runner+Docker實現(xiàn)自動部署SpringBoot項目
這篇文章主要介紹了Gitlab-runner+Docker自動部署SpringBoot項目,我們的主要流程就是通過Gitlab管理代碼,然后利用Gitlab自帶的Gitlab?CI/CD功能與GitlabRunner進(jìn)行注冊綁定,需要的朋友可以參考下2022-04-04多云環(huán)境下的Docker部署策略實現(xiàn)
在多云環(huán)境下,Docker容器技術(shù)為應(yīng)用程序的部署提供了高度的靈活性和可擴(kuò)展性,本文就來介紹一下多云環(huán)境下的Docker部署策略實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01