如何使用OracleSQL Developer连接到docker Oracle实例?

时间:2019-06-25 15:39:53

标签: docker oracle11g oracle-sqldeveloper

我拉了图片

  

docker pull store / oracle / database-enterprise:12.2.0.1   从这里https://hub.docker.com/u/brekhinaleks/content/sub-6f22957e-9628-4ac6-a935-1c0cab2f648e

并执行

  

docker run -d -it --name ETL store / oracle / database-enterprise:12.2.0.1

➜  ~ docker run -d -it --name ETL store/oracle/database- 
enterprise:12.2.0.1
aaca9926e1653027c24610cdde97f542f3ca2551f224942e84c80daea355642b
➜  ~ docker logs ETL
Setup Oracle Database
Oracle Database 12.2.0.1 Setup
Tue Jun 25 15:35:35 UTC 2019

Check parameters ......
log file is : /home/oracle/setup/log/paramChk.log
paramChk.sh is done at 0 sec

untar DB bits ......
log file is : /home/oracle/setup/log/untarDB.log

但是我无法连接到数据库 enter image description here

3 个答案:

答案 0 :(得分:0)

添加docker port oracle-db 1521/tcp 该命令返回端口 并应用这个 enter image description here

答案 1 :(得分:0)

您只是在docker run命令中缺少“ -P”参数,该命令告诉Docker分配公共端口。尝试以下方法:

docker run -d -it --name ETL -P store/oracle/database-enterprise:12.2.0.1

然后运行此命令以查找本地端口分配:

docker port ETL

答案 2 :(得分:0)

以上方法都不适合我。我能够使用容器的实际 IP 进行连接。

我运行容器 docker run -it -p 1512:1512 store/oracle/database-enterprise:12.2.0.1-slim

然后我会得到一个 bash 控制台来玩

docker exec -it CONTAINER_ID bash

在容器内查找ip

$ ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
46: eth0@if47: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0

最后我用非环回接口的地址用SQL Developer连接