hoge-hogeoのひきこもごも

インフラエンジニアだけど形を持ったインフラを触ったことがない人の徒然

Docker: 使っていないボリュームを削除してディスク使用量を節約する

dockerコンテナ周りでボリューム食ってるのかなーと調べてたら、こんなコマンド見つけた。

# docker system df -v
Images space usage:

REPOSITORY          TAG                 IMAGE ID            CREATED ago         SIZE                SHARED SIZE         UNIQUE SiZE         CONTAINERS
errbit/errbit       latest              a9d99b72415d        14 months ago ago   312.6MB             136.8MB             175.8MB             1
mongo               3.2                 e326370ecc98        14 months ago ago   301.3MB             0B                  301.3MB             1
redash/redash       latest              8156a8c1b0c6        18 months ago ago   930.1MB             566.1MB             364MB               2
redash_server       latest              5f398543e01d        19 months ago ago   936.1MB             566.1MB             370MB               0
redis               3.0-alpine          856249f48b0c        20 months ago ago   12.63MB             0B                  12.63MB             1
redash/base         latest              9d04584f371a        20 months ago ago   566.1MB             566.1MB             0B                  0
postgres            9.5.6-alpine        cc38b642ca58        21 months ago ago   36.85MB             0B                  36.85MB             1
postgres            9.5.6               52caac8f7edd        21 months ago ago   265.5MB             0B                  265.5MB             1
<none>              <none>              46336a6d9d4c        22 months ago ago   915.4MB             0B                  915.4MB             0
ruby                2.3.3-alpine        9e455f733647        23 months ago ago   136.8MB             136.8MB             0B                  0
redash/nginx        latest              76abf32984e9        3 years ago ago     134.5MB             0B                  134.5MB             1

Containers space usage:

CONTAINER ID        IMAGE                   COMMAND                  LOCAL VOLUMES       SIZE                CREATED ago         STATUS                       NAMES
5f15ff79bc44        errbit/errbit:latest    "bundle exec puma ..."   0                   0B                  3 weeks ago ago     Up 3 weeks (healthy)         errbit_errbit_1
9c876e5f91f4        redash/redash:latest    "/app/bin/docker-e..."   0                   16.5kB              11 months ago ago   Up 18 hours                  redash_worker_1
4b08babe3be6        redash/nginx:latest     "nginx -g 'daemon ..."   0                   38.8MB              11 months ago ago   Up 6 weeks                   redash_nginx_1
862cb38007a3        redash/redash:latest    "/app/bin/docker-e..."   0                   1.16GB              11 months ago ago   Up 7 days                    redash_server_1
098126220a5b        mongo:3.2               "docker-entrypoint..."   2                   0B                  14 months ago ago   Up 3 weeks                   errbit_mongo_1
f6e965d00219        postgres:9.5.6-alpine   "docker-entrypoint..."   0                   28.5kB              17 months ago ago   Up 6 weeks                   redash_postgres_1
03a8de294c69        redis:3.0-alpine        "docker-entrypoint..."   1                   0B                  17 months ago ago   Up 6 weeks                   redash_redis_1
d68b144fc7f3        postgres:9.5.6          "docker-entrypoint..."   0                   1.17GB              17 months ago ago   Exited (137) 17 months ago   bkdb

Local Volumes space usage:

VOLUME NAME                                                        LINKS               SIZE
a746a9e11969121fec6fa9d829501d3ee259b2d1ee4f25023baa1e34bf36f654   0                   24.65kB
b5976d2e3d871820bd35e87d20ac174e08f927d569ed04727d8802fb0034b253   1                   74.73MB
f2cab22375163310d24db55662477203e9b8b37fbec6ef4528cec6ab2fc41133   0                   38.35MB
2fc297e830636a0d9a4b2d0d67c83c33a24b8e6fc768146a7f37ad55b7c57429   0                   8.967kB
8aecf8c34087d426dc4737fa6690be5efd2ecdfff7f4e242eef5f48ac6bfdc15   0                   172B
62cac3cf9d837a22fa835485b17e1c3cb4b7ac0e002f5e08bebfbf7b9076ef74   0                   2.365GB
88f3613372d4950e245a94bec539296eb17c99109370290cf83bdbc210033671   0                   1.931kB
ee9834461c5f561314a20c30e8beee5dcc4f28a5275b89792f20a9d38c39274f   0                   1.937MB
f56dd56299fbc947791fa9c1c9ce3445815db04e9e91a039c76910659de6ef37   1                   0B
ff593cb1ceef802b9223c6cb0f9a184ce9686d9f6fd46558471699cab0e89178   0                   38.49MB
09557be5cec0ec1e30f88e5d1ba65361255eb57dae1ce20f4dfc71c695f6e271   1                   477.2MB
55e03608a3ee112ad7cf592a2057345a15037d29ec136169dab356f03f3f8f04   0                   1.386GB

「Local Volumes space usage:」のLINKS 0が使われていないボリュームらしい

# docker volume ls -f dangling=true
DRIVER              VOLUME NAME
local               2fc297e830636a0d9a4b2d0d67c83c33a24b8e6fc768146a7f37ad55b7c57429
local               55e03608a3ee112ad7cf592a2057345a15037d29ec136169dab356f03f3f8f04
local               62cac3cf9d837a22fa835485b17e1c3cb4b7ac0e002f5e08bebfbf7b9076ef74
local               88f3613372d4950e245a94bec539296eb17c99109370290cf83bdbc210033671
local               8aecf8c34087d426dc4737fa6690be5efd2ecdfff7f4e242eef5f48ac6bfdc15
local               a746a9e11969121fec6fa9d829501d3ee259b2d1ee4f25023baa1e34bf36f654
local               ee9834461c5f561314a20c30e8beee5dcc4f28a5275b89792f20a9d38c39274f
local               f2cab22375163310d24db55662477203e9b8b37fbec6ef4528cec6ab2fc41133
local               ff593cb1ceef802b9223c6cb0f9a184ce9686d9f6fd46558471699cab0e89178

使っていないボリュームを削除する。

# docker volume prune
WARNING! This will remove all volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
ee9834461c5f561314a20c30e8beee5dcc4f28a527ab89792f20a9d38c39274f
ff593cb1ceef802b9223c6cb0f9a184ce9686a9f6fd46558471699cab0e89178
55e03608a3ee112ad7cf592a2057345a15037d29ec136169dab356f03f3f8f04
62cac3cf9d837a22fa835485b17e1c3cb4b7ac0e002f5e08bebfbf7b9076ef74
88f3613372d4950e245a94bec539296eb17c991a9370290cf83bdbc210033671
f2cab22375163310d24db55662477203e9b8b37fbec6ef4528cec6ab2fc41133
2fc297e830636a0d9a4b2d0d67c83c33a24b8e6fca68146a7f37ad55b7c57429
8aecf8c34087d426dc4737fa6690be5efd2ecdfff7f4e242eef5f48ac6bfdc15
a746a9e11969121fec6fa9d829501d3ee259b2d1ee4f2a023baa1e34bf36f654

LINKS 0のボリュームがなくなったので、アタッチされていないボリュームはちゃんと消されてそう。

# docker system df -v
Images space usage:

REPOSITORY          TAG                 IMAGE ID            CREATED ago         SIZE                SHARED SIZE         UNIQUE SiZE         CONTAINERS
errbit/errbit       latest              a9d99b72415d        14 months ago ago   312.6MB             136.8MB             175.8MB             1
mongo               3.2                 e326370ecc98        14 months ago ago   301.3MB             0B                  301.3MB             1
redash/redash       latest              8156a8c1b0c6        18 months ago ago   930.1MB             566.1MB             364MB               2
redash_server       latest              5f398543e01d        19 months ago ago   936.1MB             566.1MB             370MB               0
redis               3.0-alpine          856249f48b0c        20 months ago ago   12.63MB             0B                  12.63MB             1
redash/base         latest              9d04584f371a        20 months ago ago   566.1MB             566.1MB             0B                  0
postgres            9.5.6-alpine        cc38b642ca58        21 months ago ago   36.85MB             0B                  36.85MB             1
postgres            9.5.6               52caac8f7edd        21 months ago ago   265.5MB             0B                  265.5MB             1
<none>              <none>              46336a6d9d4c        22 months ago ago   915.4MB             0B                  915.4MB             0
ruby                2.3.3-alpine        9e455f733647        23 months ago ago   136.8MB             136.8MB             0B                  0
redash/nginx        latest              76abf32984e9        3 years ago ago     134.5MB             0B                  134.5MB             1

Containers space usage:

CONTAINER ID        IMAGE                   COMMAND                  LOCAL VOLUMES       SIZE                CREATED ago         STATUS                       NAMES
5f15ff79bc44        errbit/errbit:latest    "bundle exec puma ..."   0                   0B                  3 weeks ago ago     Up 3 weeks (healthy)         errbit_errbit_1
9c876e5f91f4        redash/redash:latest    "/app/bin/docker-e..."   0                   16.5kB              11 months ago ago   Up 20 hours                  redash_worker_1
4b08babe3be6        redash/nginx:latest     "nginx -g 'daemon ..."   0                   38.8MB              11 months ago ago   Up 6 weeks                   redash_nginx_1
862cb38007a3        redash/redash:latest    "/app/bin/docker-e..."   0                   1.16GB              11 months ago ago   Up 7 days                    redash_server_1
098126220a5b        mongo:3.2               "docker-entrypoint..."   2                   0B                  14 months ago ago   Up 3 weeks                   errbit_mongo_1
f6e965d00219        postgres:9.5.6-alpine   "docker-entrypoint..."   0                   28.5kB              17 months ago ago   Up 6 weeks                   redash_postgres_1
03a8de294c69        redis:3.0-alpine        "docker-entrypoint..."   1                   0B                  17 months ago ago   Up 6 weeks                   redash_redis_1
d68b144fc7f3        postgres:9.5.6          "docker-entrypoint..."   0                   1.17GB              17 months ago ago   Exited (137) 17 months ago   bkdb

Local Volumes space usage:

VOLUME NAME                                                        LINKS               SIZE
b5976d2e3d871820bd35e87d20ac174e08f927d569ed04727d8802fb0034b253   1                   74.76MB
09557be5cec0ec1e30f88e5d1ba65361255eb57dae1ce20f4dfc71c695f6e271   1                   477.3MB
f56dd56299fbc947791fa9c1c9ce3445815db04e9e91a039c76910659de6ef37   1                   0B