如何启动docker容器内的filebeat?

我尝试启动dockercontainer内的filebeat。

在开始时,我尝试从这个Dockerfile开始

FROM tomcat:8.5 RUN rm -Rf /usr/local/tomcat/webapps/ROOT/* RUN mkdir /usr/local/tomcat/webapps-my COPY filebeat/ /opt/filebeat/ RUN chmod +x /opt/filebeat/filebeat COPY db-creator.jar /opt/db-creator/ COPY ./docker-entrypoint.sh / RUN chmod +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] ENTRYPOINT ["/opt/filebeat/filebeat", "-e", "-c", "/opt/filebeat/filebeat.yml"] COPY server.xml /usr/local/tomcat/conf COPY my.war /usr/local/tomcat/webapps-my/ROOT.war CMD ["catalina.sh", "run"] 

在这种情况下filebeat正在启动,但它在控制台和tomcat不起动。 现在我尝试启动filebeat作为服务

 FROM tomcat:8.5 RUN curl -L -O https://artifacts.elastic.co/downloads/beats/fileb... RUN dpkg -i filebeat-5.2.2-amd64.deb COPY filebeat.yml /etc/filebeat RUN update-rc.d filebeat defaults 95 10 COPY db-creator.jar /opt/db-creator/ COPY ./docker-entrypoint.sh / RUN chmod +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] RUN rm -Rf /usr/local/tomcat/webapps/ROOT/* COPY server.xml /usr/local/tomcat/conf RUN mkdir /usr/local/tomcat/webapps-my COPY my.war /usr/local/tomcat/webapps-iqp/ROOT.war CMD ["catalina.sh", "run"] 

但它始终没有启动。 在这些varint之前,我有一些其他varints,但他们不工作。 例如像这样的东西

CMD [“/etc/init.d/filebeat”,“start”]

我怎样才能启动filebeat?

你的方法有点不对 考虑微服务架构。 每个容器需要一个微服务。

尝试以下操作:

你需要2个独立的容器在这里。 一个用于tomcat ,另一个用于filebeat 。 然后,你将在tomcat容器中的相应位置挂载一个卷,以便在那里获得日志文件。

然后,您将在filebeat上同时挂载相同的日志卷,并使用filebeat开始发送日志。

这样你将会尊重微服务架构和docker的理念。