0

每次在 Oracle Docker 映像上登录sqlplus时,我都必须设置$ORACLE_SID 。

重现步骤:

  1. 我登录到从 Oracle 新下载并安装的全新 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_SIDecho $ORACLE_SID并再次返回一个空行

在此处输入图像描述

为什么改变不是永久性的?

4

1 回答 1

2

容器启动后,no可以更改/添加环境变量。因此,最好的选择是在 Docker 中,您可以使用 Dockerfile 中stop and remove the existing container, then recreate it with the correct environment variable. 的命令在映像上设置环境变量。ENV还可以配置调用时用来启动容器的默认环境docker run -e ...

于 2020-05-14T13:48:46.553 回答