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

Ita*_*not 3 docker

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

docker run -it node:argon -p 28777:28777 -p 28778:28778 -p 8000:80 /bin/bash
Run Code Online (Sandbox Code Playgroud)

并在您在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
Run Code Online (Sandbox Code Playgroud)

但如果我跑:

docker build .
Run Code Online (Sandbox Code Playgroud)

创建容器,一切都安装但是:

  1. 当创建完成并且我运行时docker ps -a,容器不会显示(即使我在运行时得到它的详细信息docker inspect).
  2. 当我通过http浏览时,Log.io服务不可用.

谁知道我做错了什么?

Doc*_*tar 12

Docker构建不会创建容器,它会创建一个图像.

如果你这样做:

docker build -t "myimage:0.1" .
Run Code Online (Sandbox Code Playgroud)

然后做

docker run -it myimage:0.1 -p 28777:28777 -p 28778:28778 -p 8000:80 /bin/bash
Run Code Online (Sandbox Code Playgroud)

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