2016-12-06 7 views
1

log.ioでドッキング用のコンテナを構築しようとしています。 私は手動で実行する場合:ドッカーをビルドした後。コンテナは表示されません、なぜですか?

docker run -it node:argon -p 28777:28777 -p 28778:28778 -p 8000:80 /bin/bash 

を、手動で、その後、すべてが完璧に動作し、私は、HTTPを使用してサービスにログインできるようにしていますあなたがDockerfileで見コマンド内で実行。

FROM node:argon 

WORKDIR Logz.io/src/ 

RUN useradd -ms /bin/bash ubuntu 

#RUN mkdir /root/.log.io \ 
#  && touch /root/.log.io/harvester.conf \ 
#  && touch /root/.log.io/log_server.conf \ 
#  && touch /root/.log.io/web_server.conf 

#RUN chmod g+rwx /root/logzio 
RUN apt-get update \ 
     && apt-get install -y vim net-tools 

RUN npm install log.io 

RUN /node_modules/log.io/bin/log.io-server & 

RUN /node_modules/log.io/bin/log.io-harvester & 

EXPOSE 28777 
EXPOSE 28778 
EXPOSE 8000 

しかし、私は実行する場合:コンテナが作成され

docker build . 

、すべてのものがインストールされているがされています作成が終了し、私はdocker ps -aを実行すると

  1. 、コンテナではありません(docker inspectを実行すると詳細が表示されますが)表示されます。
  2. Log.ioサービスは、httpで参照すると利用できません。

誰かが間違っていることを知っていますか?

答えて

6

Dockerビルドではコンテナが作成されず、イメージが作成されます。

そうした場合:

docker build -t "myimage:0.1" . 

を次に

docker run -it myimage:0.1 -p 28777:28777 -p 28778:28778 -p 8000:80 /bin/bash 

を行うそれはあなただけで構築された画像に基づいて、コンテナをインスタンス化しますが。

0

Dockerfileからimageを構築すると、コンテナはすぐに利用できなくなります。 docker run ...

を経由してあなたあなたは画像のこのリストからコマンドdocker images

であなたのイメージを見ることができ

を作成しましたimageからcontainerを作成する必要があります、あなたはあなたのコンテナを作成することができる場合あなたのドッカーコンテナは実行後に表示されません。あなたのビルドでは何かが失敗している可能性があり、それはあなたのDockerfileに起因します。

+0

あなたが言ったようにした後、コンテナが適切に作成されますが、私がその中にいるときにノードサービスが実行されていないことがわかります。 –

+1

ENTRYPOINTとCMDを使用する必要があるかもしれませんが、このFlaskの例http://containertutorials.com/docker-compose/flask-simple-app.htmlを見てください。 この設定では、コンテナの作成時にFlaskサーバーが実行されます。あるいは、 'docker run ...'コマンドでサーバを明示的に実行することもできます。 私はそれほどNPMを使用しませんが、これは同じように解釈する必要があります。 –

関連する問題