Oracle11g 连接到Docker上运行的Oracle XE

Oracle11g 连接到Docker上运行的Oracle XE,oracle11g,docker,oracle-sqldeveloper,Oracle11g,Docker,Oracle Sqldeveloper,我正在尝试连接到Oracle XE,它正在我Mac上的docker上运行 docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS

我正在尝试连接到Oracle XE,它正在我Mac上的docker上运行

docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g

$ docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
105d84763b6c        wnameless/oracle-xe-11g   "/bin/sh -c '/usr/sbi"   4 minutes ago       Up 4 minutes        8080/tcp, 0.0.0.0:49160->22/tcp, 0.0.0.0:49161->1521/tcp   hopeful_pasteur
当我使用以下凭据通过SQL Developer连接到它时:

hostname: localhost
port: 49161
sid: xe
username: system
password: oracle
我得到了一个错误:

Failure - Test failed: The Network Adapter could not establish the connection
Docker日志显示:

Starting Oracle Net Listener.
Starting Oracle Database 11g Express Edition instance.

我猜您使用的是Windows或OSX,因此不应该使用localhost作为主机名,而应该使用docker机器的ip地址,即

docker-machine ip default
>172.16.34.132

为什么会这样?你能解释一下吗?localhost肯定可以在Windows和OS X上运行??