2017-10-28 19 views
1

私はDockerfileを次のコンテナが起動しますと、ショーは飼育係を開始する必要がいる:コンテナをデーモンとして実行していますか?

FROM openjdk:latest 

MAINTAINER Khinkali 

COPY ["zookeeper*", "/usr/local/zookeeper/"] 
RUN ["/bin/mkdir", "-p", "/var/lib/zookeeper/"] 
COPY ["zoo.cfg", "/usr/local/zookeeper/conf/"] 

ENTRYPOINT /usr/local/zookeeper/bin/zkServer.sh start 

EXPOSE 2181 

私がしたいことは、デーモンとしてバックグラウンドでコンテナを実行しています。イメージを構築

は後に、私は(画像の名前は飼育係である)次のようにコンテナを起動します。

[email protected]:~/zookeeper$ docker run -d -p 2181 zookeeper 
3632584a1df907b82ec868bd47ebe3c4360a9a6cc28ef751205db85b67e6604c 
[email protected]:~/zookeeper$ docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 

あなたが見ることができるように、コンテナはまったくアクティブ実行されていません。私は間違って何をしていますか?

+1

あなたは 'ドッキングウィンドウのログ<コンテナ名/ ID>'を使用してログを取得するか、 '-d'なしでコンテナを実行しようとしたことがあり(例えば'docker run -it --rm -p 2181 zookeeper'を使って)?あなたの質問を編集して、これらの出力を追加してください。 – joelnb

答えて

3

zookeeperはドッカーによって要求されているので、フォアグラウンドで実行する必要があります。 Command/Entrypointはフォアグラウンドプロセスでなければなりません。

ので変更:

ENTRYPOINT /usr/local/zookeeper/bin/zkServer.sh start 

た:

ENTRYPOINT /usr/local/zookeeper/bin/zkServer.sh start-foreground 
+0

ありがとうございました。それはうまく動作します。 –