DockerコンテナでNeo4jを実行しています:
docker run --publish=7474:7474 --publish=7687:7687 --name=neo4j -e NEO4J_AUTH=neo4j/psswd neo4j:latest
このURLでNeo4jにアクセスできます:http://localhost:7474/browser/
。
また、次のURIを使用してDockerの外部でSpringを使用してNeo4jに接続できますbolt://localhost:7687/mydb
。
しかし、Docker内のSpringで別のURIを使用してNeo4jに接続しようとするとbolt://neo4j:7687/mydb
:
docker run -p 8080:8080 -t myapp --link neo4j:neo4j
例外が発生します:
java.net.UnknownHostException:neo4j
そして、localhost
または127.0.0.1
で同じことを試みると、例外が発生します。
java.net.ConnectException:接続が拒否されました
どのURIを使用する必要がありますか?そして、私は何が間違っているのですか?
Neo4jログは次のようになります。
======== Neo4j 3.3.4 ========
Starting...
Bolt enabled on 0.0.0.0:7687.
Started.
Remote interface available at http://localhost:7474/
user-defined
ブリッジネットワークを使用して、コンテナ間のDNS解決を行うことができます。
ドキュメントから:
ユーザー定義のブリッジは、コンテナー間の自動DNS解決を提供します。
デフォルトのブリッジネットワーク上のコンテナは、
--link
レガシーと見なされるオプションを使用しない限り、IPアドレスによってのみ相互にアクセスできます。ユーザー定義のブリッジネットワークでは、コンテナは名前またはエイリアスで相互に解決できます。
そして、ローカルホストまたは127.0.0.1で同じことを試みると、例外が発生します...
コンテナ内にいて「localhost」または「127.0.0.1」にアクセスしようとすると、ホストではなくコンテナ自体を参照していることになります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加