本地主机不会将请求转发到Oracle泊坞员容器
我试图从流浪者切换到泊坞窗(太迟,现在不能回去)。本地主机不会将请求转发到Oracle泊坞员容器
我已经删除了我的预言已经VBOX,我有:
- 安装搬运工的Mac
- 拉sath89/ORACLE-12C
- 操作指导上https://hub.docker.com/r/sath89/oracle-12c/
所以我使用这个命令创建了码头集装箱:
docker run -d -p 8080:8080 -p 1521:1521 sath89/oracle-12c
然后我试图用localhost:8080/em
设置用户/权限等,这是无法访问的。
然后我打开运动,看看我能找到我的容器IP,我发现那里,我的码头工人集装箱IP是192.xxx
我能够登录到192.xxx:8080/em和设置什么我需要设置。
而且我的应用程序连接到泊坞窗的时候我指定的搬运工IP:192.xxx
但应通过本地主机连接真的,为什么本地主机:8080/EM没有工作,为什么应用程序无法通过本地主机连接到码头容器?
它的工作对我的所有其他的队友,我为使用Mac OS塞拉利昂
简短的回答:
尽管我在我的评论说,事实证明,你没等多久在尝试连接到容器之前就已经足够了。显示日志以查看init何时完成,然后重试。
龙回答:
我得到了它以这种方式工作。首先,我开始容器(我只加了简单起见,--name):
$> docker run -d -p 8080:8080 -p 1521:1521 --name oracle-12c sath89/oracle-12c
然后我试图连接到容器,做一个简单的:
$> curl http://localhot:8080
curl: (52) Empty reply from server
看到没工作,所以我显示了容器的日志:
$> docker logs -f oracle-12c
这表明我的容器需要时间来启动,用下面的日志:
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! ;)
我花了大约15分钟来初始化数据库。然后它工作
所以事实证明,你使用的是Docker Machine而不是Docker for Mac。这里是你的选择:
保持泊坞窗机:
泊坞窗机是伟大的,如果你想多泊坞窗ENVS(例如,每个项目之一),但它的缺点强迫你使用守护ip来连接容器,而不仅仅是localhost
。
尽管如此,您可以编辑/etc/hosts
文件以向您的docker守护程序ip添加别名,以便于使用。
守护进程IP可以在docker-machine env <your_env>
找到。
切换到多克的Mac:
如何做到这一点的描述如下:https://docs.docker.com/docker-for-mac/
基本上都泊坞窗机(泊坞窗工具箱)和码头工人的Mac可以共存。无论你真的想保持Docker机器是由你决定的。 Docker for Mac将使用Docker机器default
env作为其唯一env,可通过localhost
访问。
在这种情况下,在default
env(即运行Docker for Mac时打开一个新的bash会话)启动oracle容器,当它初始化完毕后,您将能够直接从本地主机访问它。
您确定您使用的是Docker for Mac,而不是Docker机器吗?因为您描述的是Docker机器的行为方式,另一个想法是您尝试过早连接,但看起来不太可能。 –
@Alexandre FILLATRE谢谢你的回应,我不知道,你能告诉我怎么检查我有哪个码头工人? –
如果你必须运行像docker-machine env xxx'这样的commande才能连接到docker守护进程,那么你使用的是Docker机器,否则,如果你用th启动Docker e Docker应用程序,您可以立即连接,然后使用Docker for Mac。 –