我正在尝试从Vagrant切换到Docker(为时已晚,现在返回).
>已安装Mac版Docker
>拉sath89 / oracle-12c
>在https://hub.docker.com/r/sath89/oracle-12c/上遵循说明
因此,我使用以下命令创建了Docker容器:
docker run -d -p 8080:8080 -p 1521:1521 sath89/oracle-12c
@H_403_16@然后我尝试使用无法访问的localhost:8080 / em设置用户/权限等.
然后我打开Kinematic看看是否可以找到我的容器IP,然后在那里我发现我的Docker容器IP为192.x.x.x
我能够登录到192.x.x.x:8080 / em并进行设置.
当我指定docker ip:192.x.x.x时,我的应用程序正在连接到Docker
但是它实际上应该是通过localhost连接的,为什么localhost:8080 / em无法正常工作,为什么应用程序无法通过localhost连接到Docker容器?
它正在为我所有其他队友使用,我正在使用mac OS Sierra.
最佳答案
简短答案:
尽管我在评论中说过,但事实证明,您在尝试连接到容器之前没有等待足够长的时间.显示日志以查看初始化完成的时间,然后重试.
长答案:
我以这种方式工作.首先,我启动了容器(为简单起见,我仅添加了–name):
$> docker run -d -p 8080:8080 -p 1521:1521 --name oracle-12c sath89/oracle-12c
@H_403_16@然后,我尝试连接到容器,执行一个简单的操作:
$> curl http://localhot:8080 curl: (52) Empty reply from server
@H_403_16@那没有用,所以我显示了容器的日志:
$> docker logs -f oracle-12c
@H_403_16@ls: cannot access /u01/app/oracle/oradata: No such file or directory Database not initialized. Initializing database. Starting tnslsnr Copying database files 1% complete 3% complete 11% complete 18% complete 37% complete Creating and starting Oracle instance 40% complete 45% complete 50% complete 55% complete 56% complete 60% complete 62% complete Completing Database Creation 66% complete 70% complete 73% complete 85% complete 96% complete 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xe/xe.log" for further details. Configuring Apex console Database initialized. Please visit http://#containeer:8080/em http://#containeer:8080/apex for extra configuration if needed Starting web management console PL/sql procedure successfully completed. Starting import from '/docker-entrypoint-initdb.d': found file /docker-entrypoint-initdb.d//docker-entrypoint-initdb.d/* [IMPORT] /entrypoint.sh: ignoring /docker-entrypoint-initdb.d/* Import finished Database ready to use. Enjoy! ;)
@H_403_16@我花了大约15分钟来初始化数据库.然后它正在工作