Oracle on Docker :: ORA-12162。TNS:net服务名称指定不正确。

问题描述 投票:0回答:1

我必须设置 $ORACLE_SID 每次我登录到 sqlplus 在Oracle Docker镜像上。

重现的步骤。

  1. 我登录到一个全新的19c映像中 刚从甲骨文公司下载并安装好。docker exec -it 19c bash
  2. 我检查 $ORACLE_SID 和命令 echo $ORACLE_SID 返回一个空行(非常奇怪!?
  3. 所以我设置了 $ORACLE_SID 手动。export ORACLE_SID="ORCLCDB"
  4. 我再检查一下 $ORACLE_SID 而这次的命令是 echo $ORACLE_SID 还我 ORCLCDB 这是我设置的正确名称
  5. 我从bash Docker终端退出时使用的是 exit
  6. 我重新登录 docker exec -it 19c bash
  7. 我检查了是否有 $ORACLE_SID 一直保留着 echo $ORACLE_SID 然后它又返回给我一个空行

enter image description here

为什么这个变化不是永久性的?

oracle docker oracle-sqldeveloper sqlplus oracle19c
1个回答
1
投票

容器启动后,有 no 的方式来改变添加环境变量。因此,最好的选择是 stop and remove the existing container, then recreate it with the correct environment variable.在Docker中,你可以在镜像上用 ENV 命令在Docker文件中。您还可以配置当您调用 docker run -e ...

© www.soinside.com 2019 - 2024. All rights reserved.