【发布时间】:2021-11-03 06:30:36
【问题描述】:
我最近尝试创建一个 docker 容器并将其与我的 SQLDeveloper 连接,但我开始遇到一些奇怪的问题。 我使用以下拉取请求下载了 docker 映像:
docker pull store/oracle/database-enterprise:12.2.0.1-slim
然后我使用端口 1521 从我的 docker-desktop 启动容器。容器启动时出现警告。 enter image description here
终端消息:
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
现在当我尝试使用以下命令连接到数据库时:
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
它显示这条消息,我使用的密码是 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
我也尝试过更改 $ORACLE_HOME 中的 oracle 文件的权限以及执行权限,但没有成功。
请帮帮我,因为我被卡住了,不知道该怎么办。
【问题讨论】:
-
你试过如下运行sqlplus命令吗?
sqlplus / as sysdba。该消息可能是因为主机和容器 CPU 架构不匹配,并且 docker 正在使用可能导致性能问题和其他一般问题的仿真层 -
您是否尝试在您的
docker run命令中添加--platform linux/amd64作为选项? -
嗨@Noam,我尝试将sqlplus / as sysdba 运行,但它显示的错误与您在描述中看到的相同。我添加了命令 sn-p。
-
@harshitsrivastava 您是否尝试过this 文章中提出的任何解决方案?
-
嗨@HansKilian 我已经尝试了上面提供的选项 --plateform linux/amd64 但它启动然后退出,日志如下:
The database is ready for use . /usr/bin/tail: cannot open '/u01/app/oracle/diag/rdbms/orcl/ORCL/trace/alert_ORCL.log' for reading: No such file or directory /usr/bin/tail: no files remaining
标签: oracle docker kubernetes backend devops