#コンテナログのrotateについて
コンテナを実際の環境で運用しようと思うと、各種ログをローカルに保存する必要があります。
しかし、そのままにしておくとログが肥大化してしまいますのでlogrotate
が必要です。
参考にしたページ
##環境
- rhel 7.1
- docker 1.6.2
##手順
- 格納先を作成する
mkdir /var/log/docker/rhel1
- logrotateを実装する
vi /etc/logrotate.d/docker-container
/etc/logrotate.d/docker-container
#設定は好みで変えて下さい
/var/log/docker/*/* {
rotate 7
daily
compress
size=1M
missingok
delaycompress
copytruncate
}
- コンテナを起動する
private resistryから取得しているため、
環境によってimageの取得先を変えて下さい
docker run -it --name=rhel1 -v /var/log/rhel1:/var/log/ localhost:5000/library/rhel:latest /bin/bash
- ログ生成
echo aaa > /var/log/messages
- Ctrl+p+qでコンテナを抜ける
##以降はテスト
- ローテートの手動実行
logrotate -fv /etc/logrotate.d/docker-container
- ログ確認
ls /var/log/docker/rhel1/
messages messages.1
##概要説明
コンテナからOS上のディスクをボリュームマウント(-vオプション)して、ログをローカルに吐き出しています。これをlogrotate
の対象とすることでローテートを実現しています。
logrotateの実行タイミングはどういじればいいの?という方は、こちらにまとめた記事がありましたのでご覧ください。