我正在尝试使用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 .
创建容器,一切都安装但是:
- 当创建完成并且我运行
docker ps -a
时,不会显示容器(即使我在运行docker inspect
时获取了详细信息)。- 当我通过http浏览时,Log.io服务不可用。
醇>
任何人都知道我做错了什么?
答案 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。