Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Executar múltiplas imagens do Neo4J em paralelo

Olá, Gostaria de criar dois containers baseados na imagem do neo4j 3.0 para simular a execução simultânea de dois bancos de dados orientados a grafos. Para criar o primeiro container fiz o seguinte:

docker run -d  \
    --publish=7474:7474 --publish=7687:7687 \
        --volume=$HOME/neo4j/data1:/data1 \
        --volume=$HOME/neo4j/logs1:/logs1 \
        neo4j:3.0

e para o segundo:

docker run -d  \
    --publish=7484:7484 --publish=7697:7697 \
        --volume=$HOME/neo4j/data2:/data2 \
    neo4j:3.0

O primeiro consigo acessar como esperado: http://159.203.163.230:7474/browser/

Mas, não o segundo: http://159.203.163.230:7484/browser/

Executando o "docker ps" constatei que ambos foram disponibilizados, porém ao checar os logs do segundo (docker logs XXX), obtenho a seguinte mensagem:

2018-02-06 10:23:31.468+0000 INFO  Bolt enabled on 0.0.0.0:7687.
2018-02-06 10:23:37.622+0000 INFO  Started.
2018-02-06 10:23:40.085+0000 INFO  Remote interface available at http://0.0.0.0:7474/

Quer dizer, o segundo também está olhando para a porta 7474, e não 7484, como solicitado. Pergunto: será necessária a criação de arquivo de configuração no diretório /data2? Neste arquivo eu especificaria a porta 7484? Ou estou errando em algum passo?

Agradeço qualquer ajuda! Sds Eduardo Morelli

2 respostas
solução!

Olá Eduardo,

Pra ser sincero nunca usei o neo4j antes, mas pelo que estive vendo a configuração para subir o container e algo me chamou a atenção, no primeiro container você está mapeando a porta 7474 do container para a porta 7474 de sua máquina local assim como a porta 7687 do container para a porta 7687 de sua máquina local

 --publish=7474:7474 --publish=7687:7687

Porém no segundo container você está mapeando uma suposta porta 7484 do container para a porta 7484 da máquina local assim como uma suposta porta 7697 do container para a porta 7697 de sua máquina local, acredito que o que você gostaria de fazer seria mapear as portas expostas pelo Dockerfile (7474 e 7687) para outras portas de sua máquina local no caso 7484 e 7697, para isso teríamos:

 --publish=7484:7474 --publish=7697:7687

Excelente, Rafael. Muitíssimo agradecido! Realmente, você tem toda razão...bobeei no mapeamento de portas. Agora posso instanciar N containers, cada um em sua porta, porém mapeados para as mesmas portas locais (7474 e 7687). Valeu!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software