2015-10-27 44 views
1

我正在準備一個Docker鏡像來教我的學生關聯數據的基礎知識。我希望他們能夠真正準備適當的RDF和模擬發佈在網路爲關聯數據上的過程,所以我準備了一個碼頭工人的圖像,包括:Docker容器與Blazegraph三聯商店不工作可能是由於聯網

  • 三店:Blazegraph,監聽端口9999
  • GRefine。我已經複製了包含RDF擴展的Open Refine實例。聆聽端口3333.
  • 關聯數據服務器:我已經複製了一個Jetty實例,其中包含Pubby。聆聽端口8080.

我測試了三個在我的本地主機(運行Ubuntu 14.04),他們工作得很好。這是Dockerfile我使用來構建圖像:

FROM ubuntu:14.04 
MAINTAINER Mikel Egaña Aranguren <[email protected]> 

RUN apt-get update && apt-get install -y openjdk-7-jre wget curl 

RUN mkdir /LinkedDataServer 

COPY google-refine-2.5 /LinkedDataServer/google-refine-2.5 
COPY blazegraph /LinkedDataServer/blazegraph 
COPY jetty /LinkedDataServer/jetty 

EXPOSE 9999 
EXPOSE 3333 
EXPOSE 8080 

WORKDIR /LinkedDataServer 
CMD java -server -jar blazegraph/bigdata-bundled.jar 
CMD google-refine-2.5/refine -i 0.0.0.0 

WORKDIR /LinkedDataServer/jetty 
CMD java -jar start.jar jetty.port=8080 

我跑的容器,它並映射相應的端口:

docker run -d -p 9999:9999 -p 3333:3333 -p 8080:8080 mikeleganaaranguren/linked-data-server:0.0.1 

CONTAINER ID  IMAGE           COMMAND    CREATED    STATUS    PORTS                 NAMES 
a08709d23acb  mikeleganaaranguren/linked-data-server:0.0.1 /bin/sh -c 'java -ja 5 seconds ago  Up 4 seconds  0.0.0.0:3333->3333/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:9999->9999/tcp dreamy_engelbart 

三重店爲例,似乎是工作。如果我去127.0.0.1:9999,我可以訪問三聯店:

Blazegraph working

但是,如果嘗試做任何事情(查詢,上傳數據,...),三聯店簡單地失敗,一個「錯誤:無法聯繫服務器」。由於相同的設置在主機上運行,​​我認爲我在Docker上做錯了什麼。我試圖用-P而不是映射端口,並與--net=host,但我得到同樣的錯誤。

PS:碼頭也以同樣的方式失敗,並且GRefine甚至沒有工作。

+0

更新:即使我可以通過網絡訪問blazegraph,但執行查詢失敗(通過對等方重置連接):wget http://127.0.0.1:9999/bigdata/sparql?query=select%20*%20where% 20 {%20?的%20 2 p%20?0%20}%20limit%201。 –

+0

但是,當我「輸入」(-i -t)容器並手動運行blazegraph時,我可以對localhost和容器的IP執行上面的wget。 –

回答

1

您需要確保使用docker容器的IP來訪問Blazegraph實例。在容器外部,它不會在127.0.0.1上運行,而是分配給泊塢窗容器的IP。

你需要像

docker inspect --format '{{ .NetworkSettings.IPAddress }}' "CONTAINER ID"

其中容器ID是你的泊塢窗實例值運行的東西。

+0

我仍然收到相同的錯誤。我可以訪問http://127.0.0.1:9999/bigdata/#splash,但是如果我訪問容器的IP(通過檢查172.17.0.4獲得),連接將被拒絕: mikel @ durruti:〜$ wget http: //172.17.0.4:9999/bigdata/sparql?query=select%20*%20where%20{%20?s%20?p%20?o%20}%20limit%201 Konektatzen 172.17.0.4:9999。 .. huts egin da:連接拒絕 謝謝 –