Docker 資料一覧

DockerのUbuntuコンテナ上にsyslogを導入する手順

2019/12/13更新

対応バージョン: Docker 18.09.7

Dockerで使用するUbuntuイメージ(18.04)には最低限のパッケージしか同梱されていないので、syslogを使いたい場合は以下の手順で別途インストールする。

Dockerfileとrsyslogデーモンを起動するスクリプトを用意

Dockerfile
FROM ubuntu:18.04

RUN apt-get update && \
  apt-get install -y rsyslog

COPY startup.sh /startup.sh
RUN chmod 744 /startup.sh

CMD ["/startup.sh"]
startup.sh
#!/usr/bin/env bash

service rsyslog start

Dockerイメージビルド & 実行

ビルド
$ docker image build -t test .
実行
$ docker run --privileged test

--privilegedはコンテナ内の全てのデバイスへのアクセスを可能にするオプションであるが、これを付けないとdocker run時に以下の権限エラーになり、rsyslogデーモンが起動できない。

rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
rsyslogd: activation of module imklog failed [v8.32.0 try http://www.rsyslog.com/e/2145 ]

参考サイト