docker - 使用 docker-compose 运行 neo4j - neo4j 无法从本地主机访问 :7474

标签 docker neo4j docker-compose dockerfile

---已编辑 -- 不再工作 --- 请帮忙 --- 也许最新的 neo4j 镜像中发生了一些变化(请参阅下面我的答案以了解更多详细信息)

我尝试通过此 github 存储库(包含 docker-compose.yml)使用 docker-compose 运行 neo4j

https://github.com/GraphRM/workshop-neo4j-docker

此存储库中包含的 docker-compose 文件只不过是一个普通的 neo4j docker 镜像,其中已附加了一些数据(您可以自己尝试,该镜像非常小)

运行此文件docker-compose up -d(来自docker-compose.yml文件所在的文件夹)似乎一切顺利(没有显示错误)控制台的输出为 Starting Workshopneo4jdocker_neo4j_1 ... done) 但在浏览器中以下地址没有显示任何内容:

localhost:7474
0.0.0.0:7474
127.0.0.1:7474
<dockermachine ip>:7474    got this address with `docker-machine ip`

我想这是一个网络问题(错误的IP地址或相关的东西)所以我注意到在docker-compose.yml文件中缺少元素network_mode:

docker-compose.yml

version: '3'

services:
  neo4j:
    image: neo4j:latest
    ports:
      - "7474:7474"
      - "7687:7687"
    environment:
      - NEO4J_dbms_security_procedures_unrestricted=apoc.*
      - NEO4J_apoc_import_file_enabled=true
      - NEO4J_dbms_shell_enabled=true
    volumes:
      - ./plugins:/plugins
      - ./data:/data
      - ./import:/import

我想修改此文件,添加 network_mode: "bridge" 或使用其他值进行测试 (host,none,service:[服务名称],container:[容器名称/id])

但现在的问题是:

如果 Neo4j docker 镜像中未安装 nano 编辑器,并且我什至无法安装它,因为 apt-get 未安装为出色地。 (这是一个非常小的图像)

Moovere 我不是 Linux 用户,所以我不知道如何修改这个文件。 您能否建议我在没有这些工具的图像上不使用 vim 修改此文件?

我对 Linux 不太熟悉,但我需要运行上面 github 存储库提供的这个 docker-compose.yml 文件。

我的环境

Docker Toobox for windows
`docker version`
Client:
 Version:       18.01.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    03596f51b1
 Built: Thu Jan 11 22:29:41 2018
 OS/Arch:       windows/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:      18.01.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   03596f5
  Built:        Wed Jan 10 20:13:12 2018
  OS/Arch:      linux/amd64
  Experimental: false

PS:您认为问题与ip地址无关吗?

<强>>>>>>已编辑<<<<<

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
38e06d1020d8        neo4j:latest        "/docker-entrypoint.…"   30 hours ago        Up 29 minutes       0.0.0.0:7474->7474/tcp, 7473/tcp, 0.0.0.0:7687->7687/tcp   workshopneo4jdocker_neo4j_1

最佳答案

network_mode: "bridge" 添加到 docker-compose.yml 文件并访问 docker-machine ip 镜像工作正常

docker-compose.yml

version: '3'

services:
  neo4j:
    image: neo4j:latest
    network_mode: "bridge"
    ports:
      - "7474:7474"
      - "7687:7687"
    environment:
      - NEO4J_dbms_security_procedures_unrestricted=apoc.*
      - NEO4J_apoc_import_file_enabled=true
      - NEO4J_dbms_shell_enabled=true
    volumes:
      - ./plugins:/plugins
      - ./data:/data
      - ./import:/import

关于docker - 使用 docker-compose 运行 neo4j - neo4j 无法从本地主机访问 :7474,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48465046/

相关文章:

docker - docker 内部的 Golang 错误

java - Spring Data Neo4j 和查询

node.js - 如何为 Redis/RethinkDB 指定备用公开端口(使用 Docker Compose)?

node.js - 学习 NodeJS 和 MongoDB Docker 组合

docker - Docker镜像是否为完整操作系统?容器VS虚拟机

docker - Gitlab CI - 注册表和 nginx

docker - docker run -e 的环境变量

neo4j - 如何创建自引用节点?

Neo4J REST API

docker - 健康检查 : Dockerfile vs docker-compose. yml