2017-09-19 118 views
0

我们有许多基于nodej的微服务,并且它们都作为docker容器运行。将docker日志写入外部日志文件

下面是dockerfile的内容:

FROM keymetrics/pm2-docker-alpine:latest 

ARG ENVIRONMENT 
ARG PORT 

ENV PORT $PORT 
ENV ENVIRONMENT $ENVIRONMENT 

RUN apt-get update -qq 


RUN apt-get install --yes curl 
RUN curl --silent --location https://deb.nodesource.com/setup_6.x | bash - 
RUN apt-get install --yes nodejs 
RUN apt-get install --yes build-essential vim 


RUN mkdir /database_service 
ADD . /database_service 
WORKDIR /database_service 

RUN npm install -g path 
RUN npm cache clean 

EXPOSE $PORT 

CMD [ "npm", "start", $PORT, $ENVIRONMENT ] 

下面是用来运行容器

sudo docker run -p ${EXTERNAL_PORT_NUMBER}:${INTERNAL_PORT_NUMBER} --network 
${NETWORK} --name ${SERVICE_NAME} --restart always -m 2048M --memory-swap -1 
-itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION} 

我正在寻找一种方式编写的码头工人节点生成的日志的内容基于命令服务到Linux VM机器上的外部文件。如果有人可以提供帮助的示例命令。

+0

可能对文档的[登录驱动器(https://docs.docker.com/engine/admin/logging/overview/)会的兴趣。 – larsks

回答

0

你可以这样做:

sudo docker run -p ${EXTERNAL_PORT_NUMBER}:${INTERNAL_PORT_NUMBER} --network 
${NETWORK} --name ${SERVICE_NAME} --restart always -m 2048M --memory-swap -1 
-itd ${ORGANISATION}/${SERVICE_NAME}:${VERSION} > /path/to/your/log.txt 
+0

我也在寻找相同问题陈述的解决方案。你提到创建'log.txt'的命令,但它只包含Docker容器Id.How可以有容器的完整日志吗? –

+0

这不适合我ducfilan – Santosh