簡體   English   中英

無法啟動 Oracle 數據庫 XE 18.4 Docker 容器

[英]Can't start Oracle Database XE 18.4 Docker Container

在使用 WSL2 創建 Oracle 數據庫 XE 18.4 映像后,我遇到了這個問題。 我正在嘗試基於此圖像創建一個容器並且我不斷收到這些錯誤,即使我正在做與 Oracle 提供的教程中所要求的完全相同的事情。 當我嘗試創建容器並第一次打開它時出現錯誤

sed: can't read /etc/oratab: No such file or directory
/opt/oracle/runOracle.sh: line 194: /etc/init.d/oracle-xe-18c: No such file or directory
grep: /etc/oratab: No such file or directory
/opt/oracle/checkDBStatus.sh: line 18: oraenv: No such file or directory
#####################################
########### E R R O R ###############
DATABASE SETUP WAS NOT SUCCESSFUL!
Please check output for further info!
########### E R R O R ###############
#####################################
The following output is now a tail of the alert.log:
tail: cannot open '/opt/oracle/diag/rdbms/*/*/trace/alert*.log' for reading: No such file or directory
tail: no files remaining

我想知道我到底能做些什么來解決這些錯誤並讓這個數據庫運行。 事實上,我無法驗證日志中提到的這些文件是否存在,因為我什至無法連接到這個容器,因為這些錯誤導致它保持打開狀態大約 5 秒。
我在與 WSL2 集成的 Windows 上使用 Docker。
我的 Docker 安裝信息是:

Client: Docker Engine - Community
 Cloud integration: 1.0.12
 Version:           20.10.5
 API version:       1.41
 Go version:        go1.13.15
 Built:             Tue Mar  2 20:14:53 2021
 OS/Arch:           windows/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          20.10.5
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       363e9a8
  Built:            Tue Mar  2 20:15:47 2021
  OS/Arch:          linux/amd64
 containerd:
  Version:          1.4.4
 runc:
  Version:          1.0.0-rc93
 docker-init:
  Version:          0.19.0

隱藏在docker-images\OracleDatabase\SingleInstance\README.md中的是以下內容:

重要提示:您必須提供 Oracle 數據庫的安裝二進制文件(Oracle 數據庫 18c XE 除外)並將它們放入dockerfiles/<version>文件夾。 您只需提供要安裝的版本的二進制文件。 二進制文件可以從Oracle 技術網下載,確保使用 linux 鏈接: Linux x86-64 所需的文件名為linuxx64_<version>_database.zip 您還必須確保 yum 有互聯網連接。 請注意,您不得解壓縮二進制文件。 該腳本將為您處理,如果您手動解壓縮它們會失敗!

If you download the OracleXE RPM from https://www.oracle.com/uk/database/technologies/xe-downloads.html and copy it into the version directory as described in the doc, when building the Oracle XE docker image, it似乎使用下載的 RPM 完全安裝了 Oracle XE。

如果您在構建 Docker 映像之前跳過手動下載 RPM,似乎容器將被構建,但它會在運行時嘗試進行下載,至少對我來說,這不起作用。

構建 Docker 映像后,可以使用以下命令啟動容器:

docker run --name oraclexe \
  -p 51521:1521 \
  -p 55500:5500 \
  -v [HOST_PATH]:/opt/oracle/oradata \
  -e ORACLE_PWD=mysecurepassword \
  -e ORACLE_CHARACTERSET=AL32UTF8 \
  oracle/database:18.4.0-xe

其中HOST_PATH是 Oracle 將存儲數據庫的本地目錄的路徑。

The Dockerfile for XE v18.4.0 is different from all the others in the same repo as it tries to pull the image directly from the oracle web server using https during the container build phase. 但是容器構建階段本身發生在容器內(FROM ...),所以在我的情況下,它失敗了,因為它沒有正確的互聯網連接(帶有 https 問題的糟糕代理)。 映像已創建,但它不包含數據庫引擎。

我已經修改了OracleDatabase\SingleInstance\dockerfiles\18.4.0 Dockerfile的 Dockerfile,以便它不使用 https 原點,而是COPY (已經下載的) oracle-database-xe-18c-1.0-1.x86_64.rpm內部的 COPY。映像並將其“本地”安裝。

我使用另一個版本的Dockerfile作為模板,但它非常簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM