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

步驟 3:運行 Oracle 11g 容器(我選擇持久化)
使用以下命令運行 Oracle 11g 容器:
默認啟動容器的方式
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: 將主機的端口映射到容器的端口,這里是將主機的 1521 端口映射到容器的 1521 端口,用于訪問 Oracle 數據庫。--name oracle11g: 為容器指定一個名稱,這里是 "oracle11g"。--restart=always: 表示當容器退出時,總是重新啟動容器。
持久化啟動的方式
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
與默認啟動方式相比,增加了一個 --mount 選項,用于將一個卷(volume)掛載到容器的指定路徑。
--mount source=oracle_vol,target=/home/oracle/app/oracle/oradata: 將名為 "oracle_vol" 的 Docker 卷掛載到容器中的 "/home/oracle/app/oracle/oradata" 路徑。這樣做的目的是將 Oracle 數據庫的數據存儲在持久化的卷中,以便數據在容器重啟時得以保留。
這兩種方式的選擇取決于你的需求。如果你希望容器在重啟時保留數據,可以選擇使用掛載卷的方式,這樣可以確保數據持久化。如果你對數據的持久性沒有特殊要求,可以使用默認的啟動方式。
步驟 4:進入 Oracle 容器
通過以下命令進入 Oracle 容器的 shell: 這個容器名稱對應你之前--name的參數
docker exec -it 容器名稱 bash
步驟 5:在 Oracle 容器內部進行配置
進入容器后切換到root用戶,設置環(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
進入oracle的命令行
sqlplus /nolog
接下來可以做一些修改密碼啊 等等的操作 舉個例子如下:
CONNECT / AS SYSDBA; alter user system identified by 新密碼; 修改system密碼 CREATE USER 用戶 IDENTIFIED BY 新密碼; 新建用戶設置密碼 GRANT CREATE SESSION TO 用戶; GRANT CREATE TABLE TO 用戶; ALTER USER 用戶 QUOTA UNLIMITED ON USERS;
CONNECT / AS SYSDBA;
以 SYSDBA 角色連接到數據庫。 使用 SYSDBA 角色登錄,該角色具有最高級別的數據庫權限,允許進行系統(tǒng)級別的管理任務。alter user system identified by 密碼;
修改系統(tǒng)用戶(system)的登錄密碼。CREATE USER hhhhh IDENTIFIED BY 密碼;
創(chuàng)建一個新用戶 hhhhh,并指定其登錄密碼。GRANT CREATE SESSION TO hhhhh;
允許用戶 hhhhh連接到數據庫。GRANT CREATE TABLE TO hhhhh;
允許用戶 hhhhh在數據庫中創(chuàng)建新的表。ALTER USER hhhhh QUOTA UNLIMITED ON USERS;
設置用戶 hhhhh 在表空間 USERS 上的存儲配額為無限制,允許用戶存儲數據。
開啟遠程連接(修改監(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 數據庫監(jiān)聽器的配置信息。你可以在這里指定監(jiān)聽的端口、協(xié)議、監(jiān)聽地址等。
tnsnames.ora: 這個文件包含了數據庫連接的別名和連接信息。你可以在這里定義數據庫的連接方式。
sqlnet.ora: 這個文件包含了 SQL*Net 的配置信息,定義了 Oracle 客戶端與服務器之間的通信參數。
這里目前修改tnsnames.ora和listener.ora,把他們的hosts改為你訪問的ip我這測試環(huán)境直接全放了0.0.0.0

和


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

這只是一個簡要的指南,具體的步驟可能會根據使用的 Oracle Docker 鏡像版本而有所不同。在實際操作中,請確保遵循相關文檔并保持對 Oracle 數據庫許可的合規(guī)性。
總結
到此這篇關于在Docker中安裝Oracle數據庫的文章就介紹到這了,更多相關Docker安裝Oracle數據庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
win10環(huán)境下安裝Docker的實現(xiàn)
這篇文章主要介紹了win10環(huán)境下安裝Docker的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
Docker使用Dockerfile來創(chuàng)建鏡像
本篇文章主要介紹了Docker使用Dockerfile來創(chuàng)建鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
使用Nexus創(chuàng)建Docker倉庫的方法步驟
這篇文章主要介紹了使用Nexus創(chuàng)建Docker倉庫的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
dockerExecute 函數和docker.build的區(qū)別解析
dockerExecute 通常是一個自定義的函數或者由特定的 Jenkins 庫(如 piper-lib)提供,用于在 Docker 容器中執(zhí)行特定的命令,這篇文章主要介紹了dockerExecute 函數和docker.build的區(qū)別,需要的朋友可以參考下2024-12-12
Gitlab-runner+Docker實現(xiàn)自動部署SpringBoot項目
這篇文章主要介紹了Gitlab-runner+Docker自動部署SpringBoot項目,我們的主要流程就是通過Gitlab管理代碼,然后利用Gitlab自帶的Gitlab?CI/CD功能與GitlabRunner進行注冊綁定,需要的朋友可以參考下2022-04-04
多云環(huán)境下的Docker部署策略實現(xiàn)
在多云環(huán)境下,Docker容器技術為應用程序的部署提供了高度的靈活性和可擴展性,本文就來介紹一下多云環(huán)境下的Docker部署策略實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01

