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

ale*_*lex 3 neo4j docker dockerfile docker-compose

---编辑-不再工作---请帮助---也许最新的neo4j图像中的某些内容发生了变化(SE我的答案如下以获取更多详细信息)

我试图通过这个 github repo(包含 docker-compose.yml)使用 docker-compose 运行 neo4j

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

这个 repo 中包含的 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`
Run Code Online (Sandbox Code Playgroud)

我想这是一个网络问题(错误的 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
Run Code Online (Sandbox Code Playgroud)

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

但现在的问题是:

如果nano编辑器未安装在 neo4j docker 映像中,我什至无法安装它,因为apt-get也未安装,如何修改此文件。(这是一个非常小的图像)

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

我对 linux 不是很熟悉,但我需要运行docker-compose.yml上面 github repo 提供的这个文件。

我的环境

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

ale*_*lex 6

添加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
Run Code Online (Sandbox Code Playgroud)