用docker快速創建一個oracle database 23c free


此篇參照
 Oracle Database Free Release 23c
https://container-registry.oracle.com/ords/f?p=113:4:106243230296983:::4:P4_REPOSITORY,AI_REPOSITORY,AI_REPOSITORY_NAME,P4_REPOSITORY_NAME,P4_EULA_ID,P4_BUSINESS_AREA_ID:1863,1863,Oracle%20Database%20Free,Oracle%20Database%20Free,1,0&cs=3KInUGzFRioTBPWzyCnF11sBPjJgt5JogHOMQfx8UOqSYV_zIKl1H9VvVNvNQyvevJzm49C21fiJk58GUpwDTGw

https://container-registry.oracle.com/ords/f?p=113:1:106243230296983:::1:P1_BUSINESS_AREA:3&cs=3BUsuvUmAbuUfPcmKNZ5PLWrQq_X-HM3XGxC5bVcMLbHsQrjsJGuMtRnWJLSqo6gTxEATm9CZMVlsGuo4xgt-Dg


記得oracle官方網站帳戶先註冊準備好


官方網站連結
https://container-registry.oracle.com/ords/f?p=113:10:275482672962:::::


container-registry.oracle.com/database/free 是位於 Oracle 的容器註冊處的 Docker 儲存庫。
23.3.0.0 是映像檔的標籤,通常表示軟體的版本
(在此案例中為 Oracle Database 版本 23.3.0.0)



本次是在win11 採用docker 25的版本


Step1.先去登入oracle官方registry
docker login container-registry.oracle.com

Step2.PULL 特定版本的oracle free

docker pull container-registry.oracle.com/database/free:23.3.0.0

下載時間稍微久一點6~10分鐘不等檔案燒大要等
如果下載完應該可看到下方藍色字

在docker desktop也可看到該image

透過下指令確查目前images


在Desktop軟體則可明確看到各層layer的動作機制




Step3. 指令去RUN起該image,將Oracle Database 23c Free 這個容器給跑起來。
docker run -d -it --name Oracle23C container-registry.oracle.com/database/free:23.3.0.0

將從 Oracle 官方的免費 Docker 映像檔儲存庫啟動一個版本為 23.3.0.0 的 Oracle Database 容器。它將在背景中運行,並連接一個偽終端,同時保持標準輸入開啟,容器名稱為 "Oracle23C"。


docker run:這是用來創建並啟動新容器的基本 Docker 指令。

-d:此選項讓容器在分離模式下運行。這意味著容器會在背景中啟動並運行,從而讓命令提示符或終端機不會掛起,您可以繼續使用它來執行其他指令。

-it:這個選項是 -i 和 -t 的組合。
-i 保持容器的標準輸入(stdin)開啟,這對於互動式應用程式很有用。
-t 分配一個偽終端,使與容器的互動更像是使用一個終端機。

--name Oracle23C:此選項為容器設定自定義名稱。在這個案例中,容器將被命名為 "Oracle23C"。命名容器對於管理多個容器很有用,因為您可以通過名稱而不是自動生成的 ID 來參照它們。


此時回過頭刷新去看Docker Desktop已經更改Status變成in use了。
透過 docker logs Oracle23C
可察看啟動進展


透過 docker ps
來看啟動process


切換到Containers中也可查閱到目前CPU使用率跟Status。
能夠透過Docker Desktop去啟動 terminal在這邊操作

這邊就是可測試常用的linux指令
預設透過
sqlplus / as sysdba
能夠以DBA身分登進來,此外也能看當前所在路徑下有一個更新password的shell。


預設密碼由於我沒指定所以是隨機生成的
這邊來盡快先重新配置登入進來的管理員密碼吧

輸入exit跳出sql plus command狀態
這邊在windows命令提示字元(小黑視窗)中也可透過
docker exec -it Oracle23C sqlplus / as sysdba 

來快速進到容器並登入進sql plus的command模式喔













網路上若參考到2022年以前的oracle image基本上都不能用了
store/oracle/database-enterprise =>不能用了
docker pull store/oracle/database-enterprise:12.2.0.1

Setup Oracle Database 12c on Docker — Step by Step
https://medium.com/@g.s.r/setup-oracle-database-12c-image-on-docker-step-by-step-15a4c344acf2

在 Docker 中建立 Oracle 12c 的測試主機
https://yingclin.github.io/2018/create-oracle-docker-container.html

Ref:
https://enabling-cloud.github.io/docker-learning/RunningOracleDockerImage.html
https://iancarpenter.dev/2023/09/13/getting-started-with-oracle-database-running-on-docker/

留言

這個網誌中的熱門文章

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題