2016-12-06 5 views
1

Я пытаюсь построить докер-контейнер с log.io. Если я вручную запустить:После сборки докеров. контейнер не отображается, почему?

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

и вручную запустить внутри команды, которые вы видите в Dockerfile тогда все работает отлично, и я могу войти в службу с помощью HTTP.

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 . 

Контейнер создается, все установлено, но:

  1. Когда заканчивается создание и я бегу docker ps -a, контейнер не (хотя я получаю детали, когда я запускаю docker inspect).
  2. Служба Log.io недоступна, когда я просматриваю ее через http.

Кто-нибудь знает, что я делаю неправильно?

ответ

6

Docker build не создает контейнер, он создает изображение.

Если вы:

docker build -t "myimage:0.1" . 

Затем сделайте

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

это экземпляр контейнера на основе изображения, которое вы только что создали.

0

Когда вы закончите строительство image из файла Dockerfile, контейнер не будет легко доступен. Вам нужно будет создать containerиз в image, который был создан

Вы можете увидеть ваши изображения с помощью команды docker images

Из этого списка изображений, вы можете создать свой контейнер с помощью docker run ...

If ваш контейнер-докер не отображается после запуска, что-то, вероятно, не сработает в вашей сборке, и это будет связано с вашим файлом Docker.

+0

После того, как вы сказали, контейнер создан правильно, но когда я внутри него, я вижу, что службы узла не работают, поняли почему? –

+1

Возможно, вам потребуется использовать ENTRYPOINT и CMD, посмотрите здесь, на примере этого флэка, http://containertutorials.com/docker-compose/flask-simple-app.html. Эта конфигурация, которая будет представлена, будет генерировать запущенный сервер Flask при создании контейнера. В качестве альтернативы вы можете явно выполнить сервер в команде 'docker run ... '. Я не использую NPM так много, но это должно перевести то же самое. –

Смежные вопросы