2016-03-07 132 views
0

很簡單:泊塢窗Neo4j的容器,只是掛

[email protected]:~/development$ docker -v 
Docker version 1.6.2, build 7c8fca2 

我跑these instructions開始泊塢窗。

docker run --detach --name neo4j --publish 7474:7474 \ 
      --volume $HOME/neo4j/data:/data neo4j 

這裏沒有什麼令人興奮的;這應該都是正常的。 但是,http://localhost:7474不響應。當我跳進容器時,它似乎響應得很好(參見調試會話)。我錯過了什麼?

[email protected]:~$ docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS        NAMES 
2d9e0d5d2f73  neo4j:latest  "/docker-entrypoint. 15 minutes ago  Up 15 minutes  7473/tcp, 0.0.0.0:7474->7474/tcp neo4j    
[email protected]:~$ curl http://localhost:7474 
^C 
[email protected]:~$ time curl http://localhost:7474 
^C 

real 0m33.353s 
user 0m0.008s 
sys 0m0.000s 
[email protected]:~$ docker exec -it 2d9e0d5d2f7389ed8b7c91d923af4a664471a93f805deb491b20fe14d389a3d2 /bin/bash 
[email protected]:/var/lib/neo4j# curl http://localhost:7474 
{ 
    "management" : "http://localhost:7474/db/manage/", 
    "data" : "http://localhost:7474/db/data/" 
}[email protected]:/var/lib/neo4j# exit 
[email protected]:~$ docker logs 2d9e0d5d2f7389ed8b7c91d923af4a664471a93f805deb491b20fe14d389a3d2 
Starting Neo4j Server console-mode... 
/var/lib/neo4j/data/log was missing, recreating... 
2016-03-07 17:37:22.878+0000 INFO No SSL certificate found, generating a self-signed certificate.. 
2016-03-07 17:37:25.276+0000 INFO Successfully started database 
2016-03-07 17:37:25.302+0000 INFO Starting HTTP on port 7474 (4 threads available) 
2016-03-07 17:37:25.462+0000 INFO Enabling HTTPS on port 7473 
2016-03-07 17:37:25.531+0000 INFO Mounting static content at /webadmin 
2016-03-07 17:37:25.579+0000 INFO Mounting static content at /browser 
2016-03-07 17:37:26.384+0000 INFO Remote interface ready and available at http://0.0.0.0:7474/ 
+0

你在容器裏面試過'netstat'嗎?似乎只有服務器綁定到本地主機。 – loadaverage

+0

這看起來像我一樣的問題:http://stackoverflow.com/questions/35850160/cant-connect-to-a-docker-container-port-where-an-app-is-listening –

+0

什麼docker --version報告? –

回答

0

代替把請求localhost的你要使用泊塢窗機VM IP地址,你可以用這個命令確定:

docker-machine inspect default | grep IPAddress 

curl -i http://$(docker-machine ip default):7474/ 

默認IP地址是192.168.99.100

+0

我在Linux上,所以碼頭機器不適用。然而,這裏是相當於linux的輸出:christian @ christian:〜/ Downloads/neo4j-community-2.3.2/bin $ docker inspect neo4j | grep的ip地址 「ip地址」: 「172.17.0.7」, 基督教基督教@:〜/下載/ Neo4j的社區-2.3.2 /斌$時間捲曲172.17.0.7:7474 ^ C 真正\t 0m11.309s 用戶\t 0m0.004s sys \t 0m0.000s –

+0

@ChristianBongiorno - Localhost很好。 –

+0

@DonBranson我替換了:http:// localhost http://127.0.0.1和容器的IP地址。它只是掛起。 –

1

我不能重現這一點。 Docker 1.8.2。 & 1.10.0與您的情況確定:

docker run --detach --name neo4j --publish 7474:7474 neo4j 

curl -i 127.0.0.1:7474 
HTTP/1.1 200 OK 
Date: Tue, 08 Mar 2016 16:45:46 GMT 
Content-Type: application/json; charset=UTF-8 
Access-Control-Allow-Origin: * 
Content-Length: 100 
Server: Jetty(9.2.4.v20141103) 

{ 
    "management" : "http://127.0.0.1:7474/db/manage/", 
    "data" : "http://127.0.0.1:7474/db/data/" 
} 

嘗試升級泊塢窗,並檢查網絡過濾規則進行轉發。

+0

有沒有官方的,甚至準官方的支持Ubuntu的16.04 https://github.com/docker/docker/issues/20192 我會在這個問題上再坐一會兒。我已經訂閱了這個問題,所以如果他們發佈真正的支持,我會知道的。 –

+0

我應該檢查哪些netfilter規則? Docker應該爲我管理所有這些。由於我已經安裝了Java,因此無需docker即可運行,並且已被證明是真正的PITA! –

+0

GAH!好吧,我不知道爲什麼這很重要,但我有一個修復。將回答我自己的問題。我高舉你,因爲你的回答激發了我的改變 –

0

好的,基本上我把args中的卷裝卸下來,然後運行。最終,我不想要一個不在容器外的裝載。感謝@LoadAverage爲我提供幫助。它仍然不是'正確的',但對我的目的我不在乎。

[email protected]:~/development$ docker run --detach --name neo4j --publish 7474:7474 neo4j 
6c94527816057f8ca1e325c8f9fa7b441b4a5d26682f72d42ad17614d9251170 
[email protected]:~/development$ curl http://127.0.0.1:7474 
{ 
    "management" : "http://127.0.0.1:7474/db/manage/", 
    "data" : "http://127.0.0.1:7474/db/data/" 
} 
[email protected]:~/development$ 
+0

welks :)因爲我沒有neo的經驗,不能提出任何合理的建議。 – loadaverage