2017-04-02 47 views
1

我試圖獲得一個Neo4J數據庫並在docker容器中運行。 目前,我有它運行使用命令:Docker和Neo4J

docker run -d -p 7474:7474 -p 7687:7687 neo4j 

..和它的正常工作。

我想把它放在一個Dockerfile中,這樣我就可以做一些服務器配置,但是當我使用Dockerfile時,它不會公開端口,我已經將它設置爲公開,除非我明確公開它們,當我做「泊塢窗運行「:

FROM neo4j 
ENV NEO4J_AUTH neo4j/password 
EXPOSE 7474:7474 
EXPOSE 7687:7687 

我誤解了一些東西,或者不應該使用此配置自動公開端口?

回答

3

EXPOSE指令通知Docker容器在運行時在指定的網絡端口上監聽 。 EXPOSE不會使容器的端口 可供主機訪問。要做到這一點,您必須使用 或-p標誌發佈一系列端口或-P標誌以 發佈所有暴露的端口。您可以公開一個端口號,然後使用另一個號碼在外部發布 。

要在主機系統上設置端口重定向,請參閱使用-P標誌。 Docker網絡功能支持創建網絡,而不需要 以顯示網絡中的端口,有關詳細信息,請參閱此功能的 概述)。

https://docs.docker.com/engine/reference/builder/

+0

沒關係啊。所以EXPOSE不適用於發佈端口。我發現它甚至無法通過dockerfiles。我會用docker-compose代替。 – Bisgaard