2016-07-28 2 views
1

私はneo4jインスタンスを設定するドッカーファイルを作成しようとしています。私はそのイメージを構築し、私は私のホストマシン上でlocalhost:4747でのNeo4jパネルにアクセスすることができるよ一方で、次のコマンドドッキングステーション内のローカルホスト - neo4j

docker run -p 7474:7474 myimage 

を使用して実行し、ここから

FROM neo4j:3.0 
MAINTAINER Andy 

CMD curl \ 
-H "Content-Type: application/json" \ 
-X POST -d '{"password":"mypassword"}' \ 
-u neo4j:neo4j http://localhost:7474/user/neo4j/password 

:現在、私は以下の持っていますコンテナ内で実行されるcurlコマンドは、それ自身のlocalhostインスタンスにアクセスできません。

私はこれを正しくやっているのですが、どうやってコンテナの中からlocalhostを呼び出すのでしょうか?

私は、カールの要求がコンテナをエスケープすることは望ましくありません。コンテナ内のneo4jと通信する必要があります。

答えて

1

はたぶん、あなたは環境変数$NEO4J_AUTHを使用する認証を制御する:のNeo4jのイメージのためにDockerfileを見た後、私はそうのようなNEO4J_AUTHの環境変数を変更するために私に必要なパスワードを設定することがわかりました説明したようにhere。例えば

この無効認証

docker run -p 7474:7474 -e NEO4J_AUTH=none -d neo4j:3.0 

また、ドッキングウィンドウneo4j:3.0画像のentrypoint scriptをチェックしたい場合がありますので、与えられた選択肢は、あなたのために十分ではない場合は、独自のバージョンを作ることができます。

+0

ありがとう、それは解決策であることが分かったと私は途中でdockerfilesについて学んだ – Andy

2

コンテナはのみです。カールが流れています。上記のあなたのDockerfileに基づいて、あなたは容器内でneo4jを開始していないので、もちろんlocalhostにはありません。

別のコンテナで実行している場合は、そのコンテナのIPアドレスを使用する必要があります。

+0

これに基づいて、CMDがソースイメージCMDを上書きすると言っていますか?私はこの注文が 'source-run、source-cmd-> my-run、my-cmd'のようになったと仮定しました。 – Andy

+1

ドッカーイメージは単一の' CMD'しか持つことができません。ドッカーファイルに 'CMD'を指定すると、ベースイメージにあったものはすべて上書きされます。 – larsks

+0

情報ありがとう! – Andy

1

パスワードを設定する私のアプローチは、むしろ長引いていました。

FROM neo4j:3.0 
MAINTAINER Andy 

ENV NEO4J_AUTH neo4j/password 
関連する問題