我正在尝试使用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)
创建容器,一切都安装但是:
- 当创建完成并且我运行时
docker ps -a,容器不会显示(即使我在运行时得到它的详细信息docker inspect).- 当我通过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)
它将根据您刚刚构建的图像实例化一个容器.