日: 2018年12月28日

  • dockerを長期的に使いDISKを圧迫した時の対処

    dockerを長期的に使いDISKを圧迫した時の対処

    はじめに

    dockerを長期的に運用していると、気がついたらdiskがなくなってることがある。

    # df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda3        16G   14G  1.2G  93% /

    気がつけば93%もう後がない状態。

    対処

    dockerの不要なボリュームを削除することで対処可能

    まずは使われていないdiskを確認する。

    # docker volume ls -f dangling=true
    DRIVER              VOLUME NAME
    local               0d0c5c35a033c3fbf35bc8eb3b1f9a9612ece1c622cf0ad357b6e20084350760
    local               9aea772f64985c7a271f5d20c519b4a59ccd2219030f961c37a1cfb0130f2d35
    local               55ccc89f56ebe15c4091cb4b196877ea08e9dd93ecb26fd17b941baf03458b58
    local               93ef3cb97887f0d357332afbcebb5c096f7e8eaae4bcfd2285042e51d53771c7
    local               529d774ed12a837ceb118b56ef16bd2ad9420973cd76f1a76575c21e9b0719ff
    local               543b74740c96e9925d66546fd56b2e8eb3e2254706c0ae10e37dfd54c3719033
    local               635117bef58efbcaff9d0b8aab47702d2ad271bb5fffd4e0ab8f700e3d5aa2f5
    local               069661160a320af109bccf5099d1f4b7f5a2003911ba8d029075c45b145873d1
    local               af62d09de828c78ed362278a8bda4120649dadb5e3d824e65c6309c0293d7d37
    local               c8e396a769f4c4e8a0829f9b230fec92b282b9b36575218d25b89bf9891349d5
    local               d190aecd81bc16520210af668c3ea0fec32a1b1a3d8554a058c5cef65f87de09
    local               dcd49f633c6c0fbb7307788cc1521b6cc9c851fdd52aab9f0af7687ed3a1ab3e
    local               e0b22e274022a38e0aedbd6db1b950c3084d1f463e5f1a47b79d5e38d61e5bcb
    local               e051a42bc994b73f704863559f818289a4c38ec6f314b99be365e9a6484ac604
    local               ebad853173f65bd381eb52f43493825a8e3e9c19bbaaa7dcfd6b03f39611cf4f
    #

    不要なdiskがぞろぞろ出てくる。

    パイプで繋いでxargsで削除。

    # docker volume ls -qf dangling=true | xargs docker volume rm
    0d0c5c35a033c3fbf35bc8eb3b1f9a9612ece1c622cf0ad357b6e20084350760
    9aea772f64985c7a271f5d20c519b4a59ccd2219030f961c37a1cfb0130f2d35
    55ccc89f56ebe15c4091cb4b196877ea08e9dd93ecb26fd17b941baf03458b58
    93ef3cb97887f0d357332afbcebb5c096f7e8eaae4bcfd2285042e51d53771c7
    529d774ed12a837ceb118b56ef16bd2ad9420973cd76f1a76575c21e9b0719ff
    543b74740c96e9925d66546fd56b2e8eb3e2254706c0ae10e37dfd54c3719033
    635117bef58efbcaff9d0b8aab47702d2ad271bb5fffd4e0ab8f700e3d5aa2f5
    069661160a320af109bccf5099d1f4b7f5a2003911ba8d029075c45b145873d1
    af62d09de828c78ed362278a8bda4120649dadb5e3d824e65c6309c0293d7d37
    c8e396a769f4c4e8a0829f9b230fec92b282b9b36575218d25b89bf9891349d5
    d190aecd81bc16520210af668c3ea0fec32a1b1a3d8554a058c5cef65f87de09
    dcd49f633c6c0fbb7307788cc1521b6cc9c851fdd52aab9f0af7687ed3a1ab3e
    e0b22e274022a38e0aedbd6db1b950c3084d1f463e5f1a47b79d5e38d61e5bcb
    e051a42bc994b73f704863559f818289a4c38ec6f314b99be365e9a6484ac604
    ebad853173f65bd381eb52f43493825a8e3e9c19bbaaa7dcfd6b03f39611cf4f
    #

    93% -> 72%に削減できた

    # df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vda3        16G   11G  4.3G  72% /

    コマンドの詳細

    dockerの -f “dangling=true” はフィルタオプション。

    “dangling=true” はどのコンテナにも紐付いていないボリュームを抽出する事が可能。