2016-12-16 63 views
3

我試圖從流浪者切換到泊塢窗(太遲,現在不能回去)。本地主機不會將請求轉發到Oracle泊塢員容器

我已經刪除了我的預言已經VBOX,我有:

所以我使用這個命令創建了碼頭集裝箱:

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塞拉利昂

+0

您確定您使用的是Docker for Mac,而不是Docker機器嗎?因爲您描述的是Docker機器的行爲方式,另一個想法是您嘗試過早連接,但看起來不太可能。 –

+0

@Alexandre FILLATRE謝謝你的迴應,我不知道,你能告訴我怎麼檢查我有哪個碼頭工人? –

+0

如果你必須運行像docker-machine env xxx'這樣的commande才能連接到docker守護進程,那麼你使用的是Docker機器,否則,如果你用th啓動Docker e Docker應用程序,您可以立即連接,然後使用Docker for Mac。 –

回答

2

簡短的回答

儘管我在我的評論說,事實證明,你沒等多久在嘗試連接到容器之前就已經足夠了。顯示日誌以查看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分鐘來初始化數據庫。然後它工作

0

所以事實證明,你使用的是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容器,當它初始化完畢後,您將能夠直接從本地主機訪問它。