热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用syslog处理多个Docker容器的日志

注:该文作者jpetazzo,该文章的原文为MultipleDockercontainersloggingtoasinglesyslog这里有一个简单方法展示了怎样在一个容器中运行

注:该文作者 jpetazzo,该文章的原文为 Multiple Docker containers logging to a single syslog

这里有一个简单方法展示了怎样在一个容器中运行 syslog ,然后发送多台其他容器的 syslog 消息到另外一台。

可运行的 Dockerfile 和基础的指令已经在一个小型的 github 仓库里:https://github.com/jpetazzo/syslogdocker。

这个构思非常的简单。

首先,我们使用以下的规格参数表构建容器:

  • 已经安装了 rsyslogd,并且是作为默认的命令
  • /dev 被定义成一个卷
  • /var/log 被定义成一个卷

这里有这样的容器的 Dockerfile

FROM ubuntu:14.04
RUN apt-get update -q
RUN apt-get install rsyslog
CMD rsyslogd -n
VOLUME /dev
VOLUME /var/log

然后,我们启动容器;但是我们使用了一个显式的主机 bind-mount,例如:

docker run --name syslog -d -v /tmp/syslogdev:/dev syslog

为什么要使用显式的主机 bind-mount?因为当 syslog 启动的时候, 容器将创建 /dev/log。然后我们想得到那个 socket 并且在我们未来的容器中 bind-mount ,不用 bind-mount 整个 /dev。如果我们仅仅使用 --volumes-from,我们将得到整个 /dev 。它现在暂时不会产生重大的影响,但是当我们后续做一些设想的工作(像增加一个普通的 devices ),可能会把事情搞砸,因此让我们细粒度一些。

Docker 的后续版本可能允许细粒度的 --volumes-from

然后我们可以启动任何容器,bind-mounting /dev/log 到容器里面去:

docker run -v /tmp/syslogdev/log:/dev/log myimage somecommand

对于一个教育示例,你可以这样做:

docker run -v /tmp/syslogdev/log:/dev/log ubuntu logger hello

容器将把日志消息发送到 /dev/log,其实际是通过 syslog 创建 socket 。

你可以通过使用 --volumes-from syslog 运行另外一个容器来查看日志,以及检查在 /var/log 里面的文件。


推荐阅读
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了如何在Linux系统中安装和配置GitLab Runner,包括添加YUM源、安装GitLab Runner以及注册Runner的具体步骤。 ... [详细]
  • Windows环境下部署Kubernetes Dashboard指南
    本指南详细介绍了如何在Windows系统中部署Kubernetes Dashboard,包括下载最新配置文件、修改服务类型以支持NodePort访问、下载所需镜像并启动Dashboard服务等步骤。 ... [详细]
  • 本文探讨了在Git子模块目录中运行pre-commit时遇到的错误,并提供了一种通过Docker环境解决此问题的方法。 ... [详细]
  • Docker学习(五) Dockerfile基础命令
    学习Dockerfile,需要对它的基础命令进行了解FROM-基于基准镜像尽量使用官方提供的基准镜像[x]FROMtomcat:8.5.50-jdk8-openjdk#制作基准镜像 ... [详细]
  • 在Docker中,构建一个自定义镜像共有两种方法,一是通过commit指令构建,二是通过Dockerfile文件构建。第一种方式在上篇博客中已经详细介绍(Docker入门实战(二)—— ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • Docker入门与实践指南
    本文介绍了Docker的基础知识,包括其作为开源应用容器引擎的特点,以及如何利用Docker将应用程序及其依赖项打包成轻量级的容器镜像。同时,还详细讲解了Docker的核心概念、安装过程及基本命令操作。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • Linux目录结构说明(2)一些重要文件目录1.一些重要文件目录参考1.一些重要文件目录1.网卡配置文件etcsysconfignetwork-scr ... [详细]
  • dockerfile方式创建容器最简单的dockerfile创建镜像使用此镜像运行一个容器dockerfile基本要素dockerfile指令FROM:  FROM{base镜像} ... [详细]
  • Dockerfile中怎么将war包打入镜像
    今天就跟大家聊聊有关Dockerfile中怎么将war包打入镜像,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据 ... [详细]
  • 我对Docker世界非常陌生。我有一个docker-compose文件,对我来说很好。但是,我如何创建这 ... [详细]
  • DockerfileDocker是软件工业上的集装箱技术。通过以下文件制作Docker镜像[root@Optimusdocker-training]#cdcentos7[root@ ... [详细]
author-avatar
yfx94132囧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有