Fluentd docker image
This container image is to create endpoint to collect logs on your host.
docker run -d -p 24224:24224 -v /data:/fluentd/log fluent/fluentd
Default configurations are to:
- listen port
24224
for fluentd forward protocol - store logs with tag
docker.**
into/fluentd/log/docker.*.log
(and symlinkdocker.log
) - store all other logs into
/fluentd/log/data.*.log
(and symlink data.log)
This image uses Alpine Linux. If you want to use Ubuntu based image, use ubuntu-base
tag.
Configurable ENV variables
Environment variable below are configurable to control how to execute fluentd process:
FLUENTD_CONF
It's for configuration file name, specified for -c
.
If you want to use your own configuration file (without any optional plugins), you can use it over this ENV variable and -v option.
- write configuration file with filename
yours.conf
- execute
docker run
with-v /path/to/dir:/fluentd/etc
to share/path/to/dir/yours.conf
in container, and-e FLUENTD_CONF=yours.conf
to read it
FLUENTD_OPT
Use this variable to specify other options, like -v
or -q
.
How to build your own image
It is very easy to use this image as base image. Write your Dockerfile
and configuration files, and/or your own plugin files if needed.
FROM fluent/fluentd:latest
MAINTAINER your_name <...>
USER fluent
WORKDIR /home/fluent
ENV PATH /home/fluent/.gem/ruby/2.2.0/bin:$PATH
RUN gem install fluent-plugin-secure-forward
EXPOSE 24284
CMD fluentd -c /fluentd/etc/$FLUENTD_CONF -p /fluentd/plugins $FLUENTD_OPT
Files below are automatically included in build process:
fluent.conf
: used instead of default fileplugins/*
: copied into/fluentd/plugins
and loaded at runtime
Note: Default image removed several apk packages, build-base and ruby-dev, to keep docker image small. If you want to install the plugin which depends on native extension gems, needs to re-install these packages to build it.
Testing
docker run --log-driver=fluentd --log-opt fluentd-address=192.168.0.1:24224 IMAGE echo "Hello Fluentd"
Should produce a log-file with Hello Fluentd
, depending on you fluent.conf
file.