在docker构建之后。容器没有显示,为什么?

时间:2016-12-06 18:00:24

标签: docker

我正在尝试使用log.io构建一个docker容器。 如果我手动运行:

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.   
  3. 当我通过http浏览时,Log.io服务不可用。
  4.   

任何人都知道我做错了什么?

2 个答案:

答案 0 :(得分:8)

Docker构建不会创建容器,而是创建图像。

如果你这样做:

docker build -t "myimage:0.1" .

然后做

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

它将根据您刚刚构建的图像实例化一个容器。

答案 1 :(得分:0)

从Dockerfile完成构建image后,容器将无法使用。您需要从创建的container创建image

您可以使用docker images

命令查看图像

从此图片列表中,您可以通过docker run ...

创建容器

如果你的docker容器在运行后看不到,那么你的构建中可能会出现一些错误,这可能源于你的Dockerfile。