LoginSignup
3
2

More than 3 years have passed since last update.

Dockerでlogを削除する、ログを溜めない方法

Posted at

概要

こんにちは、はにおかさい(@haniokasai )です。
自分のサーバーで容量が足りなくなってしまい、dockerのログをどかそうと思いました。
ログを消す・溜めない方法を調べました。

環境

  • Ubuntu 18.04 on XFS
  • docker
    • overlayfs on XFS
    • 19.03.5

すでにあるログを削除

特定のコンテナのログを消す

コンテナ名(ID)を入力し、そのログパスを取得。そこに無を流し込めばログが消えます。

echo "" > $(docker inspect --format='{{.LogPath}}' コンテナ名orコンテナID)

全コンテナのログを消す

forでコンテナ名(ID)を回します。

#削除対象の確認
for CONTID in $(docker ps -qa); do echo $(docker inspect --format='{{.LogPath}}' $CONTID ); done
#実際の削除
for CONTID in $(docker ps -qa); do echo "" > $(docker inspect --format='{{.LogPath}}' $CONTID ); done

たまに、空白のコンテナidが入り込んで

bash: $(docker inspect --format='{{.LogPath}}' $CONTID ): ambiguous redirect

となりますが、無視して問題ありません(条件分けする理由もないだろう。)

ログ溜めない方法

新たなコンテナでログを溜めない方法は以下のものです。

はじめに、serviceを編集します。

vi /lib/systemd/system/docker.service

ExecStartを編集すればよい。
- max-fileは保管をする世代の数
- maz-sizeは最大サイズ

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --log-opt max-size=10m --log-opt max-file=1

こんなかんじ

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --log-opt max-size=10m --log-opt max-file=1
ExecReload=/bin/kill -s HUP $MAINPID
(以下略)                        

systemctlとdockerをリロードします。

systemctl daemon-reload
systemctl reload docker

Ref

https://stackoverflow.com/questions/42510002/how-to-clear-the-logs-properly-for-a-docker-container
https://www.unix.com/shell-programming-and-scripting/173276-how-loop-through-space-separated-values.html

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2