Oracle docker 容器在 Mac M1 BigSur 上无法正常工作

har*_*ava 6 oracle backend docker kubernetes devops

我最近尝试创建一个 docker 容器并将其与我的 SQLDeveloper 连接,但我开始遇到一些奇怪的问题。我使用下面的拉取请求下载了 docker 镜像:

docker pull store/oracle/database-enterprise:12.2.0.1-slim
Run Code Online (Sandbox Code Playgroud)

然后我使用端口 1521 从我的 docker-desktop 启动了容器。容器启动时出现警告。

在此输入图像描述

终端消息:

docker run -d -it -p 1521:1521 --name oracle store/oracle/database-enterprise:12.2.0.1-slim
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
5ea14c118397ce7ef2880786ac1fac061e8c92f9b09070edffe365653dcc03af
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用以下命令连接到数据库时:

docker exec -it 5ea14c118397 bash -c "source /home/oracle/.bashrc; sqlplus /nolog"
SQL> connect sys as sysdba;
Enter password: 
ERROR:
ORA-12547: TNS:lost contact
Run Code Online (Sandbox Code Playgroud)

它显示此消息,我使用的密码是 Oradoc_db1。

现在,在看到一些建议后,我尝试使用以下命令连接到 sqlplus:

 docker exec -it f888fa9d0247 bash -c "source /home/oracle/.bashrc; sqlplus / as sysdba"

SQL*Plus: Release 12.2.0.1.0 Production on Mon Sep 6 06:15:58 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

ERROR:
ORA-12547: TNS:lost contact
Run Code Online (Sandbox Code Playgroud)

我还尝试更改 $ORACLE_HOME 中 oracle 文件的权限以及执行权限,但它不起作用。

请帮助我,因为我被困住了,不知道该怎么办。

pmd*_*dba 1

这里有两个问题:

  1. Oracle 数据库在 ARM 处理器上不受支持,仅在 Intel 上受支持。请参阅此处: https: //github.com/oracle/docker-images/issues/1814
  2. 仅 Oracle Linux 7 或 Red Hat Enterprise Linux 7 作为主机操作系统支持 Oracle Database Docker 映像。请参阅此处: https: //github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance

Oracle 数据库...支持 Oracle Linux 7 和 Red Hat Enterprise Linux (RHEL) 7。有关更多详细信息,请参阅我的 Oracle 支持说明:Oracle 支持在 Docker 上运行的数据库(文档 ID 2216342.1)

引用的 My Oracle Support 文档 ID 继续说道,其 Docker 映像中的数据库二进制文件是专门为 Oracle Linux 主机构建的,并且也适用于 Red Hat。就是这样。

Linux 就是它的本质(灵活),很多人已经获得了可以在其他版本(例如 Ubuntu)上运行的映像,但只能在 x86 处理器上运行,即使如此,Oracle 也不保证结果:您不会当事情没有按预期进行时(而且总是在 IT领域,而不是IT 领域) ,能够获得支持或实用建议。您甚至可能无法判断事情何时未按预期进行。在这种情况下,创造力并没有得到特别的奖励;如果您希望它正常工作并获得有意义的帮助,我的建议是使用支持的硬件架构和操作系统版本。其他任何事情都完全是一场赌博。