我正试图从瓦格兰特转到码头(太晚了,不能再回去了)。
我已经删除了我的Oracle Vbox,我已经:
因此,我使用以下命令创建了Docker容器:
docker run -d -p 8080:8080 -p 1521:1521 sath89/oracle-12c然后,我尝试使用无法到达的localhost:8080/em设置用户/权限等。
然后我打开运动学,看看是否能找到我的容器IP,在那里我发现我的Docker容器IP是192.x.x.x。
我能够登录到192.x.x.x:8080/em并安装我所需的设置。
当我指定停靠者ip: 192.x.x.x时,我的应用程序正在连接到Docker
但是它应该通过本地主机进行真正的连接,为什么本地主机:8080/em不能工作,为什么应用程序不能通过本地主机连接到Docker容器?
它适用于我的其他队友,我用的是mates。
发布于 2016-12-16 22:53:34
短答案
尽管我在评论中说了些什么,但事实证明,在试图连接到容器之前,您没有等待足够长的时间。显示日志以查看init何时完成,然后再试一次。
长答案
我把它弄成这样。首先,我启动了容器(为了简单起见,我只添加了--名称):
$> 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分钟才进入分局。然后它起作用了
发布于 2016-12-16 23:08:30
原来你用的是码头机器,而不是Mac的Docker。以下是您的选择:
保持码头机
如果您想要多个码头env(例如,每个项目一台),那么Docker机器是很棒的,但是它的缺点是迫使您使用守护进程ip连接容器,而不仅仅是localhost。
不过,您可以编辑您的/etc/hosts文件以将别名添加到您的停靠守护进程ip中,以便更容易地使用。
在docker-machine env <your_env>中可以找到守护进程IP。
切换到用于Mac的Docker
如何做到这一点在这里描述:https://docs.docker.com/docker-for-mac/
基本上,Docker机器(Docker Toolbox)和用于Mac的Docker可以共存。你是否真的想保留码头机器取决于你。Docker将使用Docker default env作为其唯一的env,可由localhost访问。
在本例中,在default env上启动oracle容器(即,一旦Docker运行,打开一个新的bash会话),当它初始化完毕后,您将能够从本地主机直接访问它。
https://stackoverflow.com/questions/41188316
复制相似问题