连接 Docker oracle EE + sqlplus

Connect Docker oracle EE + sqlplus

我正在尝试连接 official sqlplus docker container to the official Oracle Database EE

首先我启动 Oracle 数据库 EE 容器:

  $docker run -d -it --name OracleEE -P store/oracle/database-enterprise:12.2.0.1
  $docker port OracleEE 
     1521/tcp -> 0.0.0.0:32773
     5500/tcp -> 0.0.0.0:32772
  $docker inspect OracleEE | grep -i IPAddress
        "SecondaryIPAddresses": null,
        "IPAddress": "172.17.0.2",
                "IPAddress": "172.17.0.2",

现在,我怎样才能连接到这个数据库?

在 docker 图片文档中我读到:

You can run a container interactively to execute ad-hoc SQL and PL/SQL statements in SQL*Plus:

docker run -ti --rm store/oracle/database-instantclient:12.2.0.1 sqlplus hr/welcome@example.com/pdborcl

出于这个原因,我明白这个命令必须有效:

 $docker run -ti --rm store/oracle/database-instantclient:12.2.0.1 sqlplus sys/Oradoc_db1@172.17.0.2:32773/orcl.localdomain

但是响应是如下错误:

  SQL*Plus: Release 12.2.0.1.0 Production on Wed Sep 20 11:42:31 2017
  
  Copyright (c) 1982, 2016, Oracle.  All rights reserved.
  
  ERROR:
  ORA-12541: TNS:no listener
  
  
  Enter user-name: 

我的错误在哪里?

我解决了我的问题。问题是容器之间的通信。我需要添加一个 link

  docker run -it --rm --link OracleEE:db store/oracle/database-instantclient:12.2.0.1 sqlplus64 sys/Oradoc_db1@db:1521/ORCLCDB.localdomain as sysdba

现在工作正常!