Docker 不要リソースお掃除 compose

Docker 不要リソースお掃除 compose

概要

ECS EC2 で一部コンテナが 起動開始 → 失敗 → 起動開始 → 失敗 を繰り返し
サーバが容量不足 no space left に陥る事象がありました。

その時の対応をまとめました。

docker 不要リソース削除

docker 不要リソース削除処理コマンドは以下の様なものを実行します。

1
2
3
4
5
6
7
8
// コンテナ削除
$ docker ps -aq | xargs docker rm

// イメージ削除
$ docker images -aq | xargs docker rmi

// タグ無しイメージ一括削除
$ docker volume ls -qf dangling=true | xargs docker volume rm

dangling … ぶら下がる、 ぶらぶら揺れる

Spotify のお掃除イメージを使う

1
2
$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc spotify/docker-gc
$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker:/var/lib/docker martin/docker-cleanup-volumes

docker-compose.yml にしてみる

docker-compose.yml フォーマットにすることでイメージ管理が容易になります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '2'

services:
docker-gc:
image: spotify/docker-gc
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc:/etc

docker-cleanup-volumes:
image: martin/docker-cleanup-volumes
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker:/var/lib/docker

ECS EC2 で one-off Container 実行してお掃除

1
2
3
4
5
6
7
8
ecs-cli compose \
--debug \
--project-name <project name> \
--file docker-compose.yml \
run \
--cluster <cluster name> \
--region ap-northeast-1 \
--aws-profile <profile>

ToDo

初めて利用する Public Container に対しての脆弱性をチェックする仕組みを導入する必要があるかと思います。
この辺りまとめてまた執筆したいと思います。

Author

Kenzo Tanaka

Posted on

2018-07-11

Licensed under

コメント