Localhost不会将请求转发到Oracle Docker容器

我正在尝试从Vagrant切换到Docker(为时已晚,现在返回).

我已经删除了Oracle VBox,并且拥有:

>已安装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分钟来初始化数据库.然后它正在工作

相关文章

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Li...
1、什么是docker?答:docker是开源的应用容器引擎;开发人员把他们的应用及依赖包打包发布到容器当中。...
1、什么是namespace? 答:名称空间,作用隔离容器 2、namespace隔离有那些? 答:ipc:共享内存、消息队...
1、Docker能在非Linux平台(Windows+MacOS)上运行吗? 答:可以 2 、如何将一台宿主机的docker环境...
环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10...
文档上传地址:https://files.cnblogs.com/files/lin-strive/07-docker%E8%B7%A8%E4%B8%BB%E6%9C%BA%E7...