LoginSignup
2
3

More than 3 years have passed since last update.

ec2使用時にdockerの容量がいっぱいになった際の対処法

Last updated at Posted at 2020-08-12

dockerを起動しようとしたら以下のエラーが発生した。

$ docker-compose build
Failed to write all bytes for _codecs_cn.so
fwrite: No space left on device



容量不足により起動不可となっているようだ。
以下のコマンドを叩くと容量を喰っているファイルを見つけることができる。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         474M     0  474M    0% /dev
tmpfs            492M     0  492M    0% /dev/shm
tmpfs            492M   13M  479M    3% /run
tmpfs            492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1       8.0G  8.0G   22M  100% /  //容量不足
tmpfs             99M     0   99M    0% /run/user/1001

/dev/xvda1 というファイルがかなりの容量を占めている。
logなどの不要ファイルを削除しても解決できる場合もあるが、今回はEC2で使用しているEBSのサイズを変更して対応する。
無料利用枠のt2.microでは8GBがデフォルトで、今回は16GBに変更する。(若干料金が発生する:約1$/月)

AWSのEC2に移動し、ボリュームに移動する。
目的のボリュームを選択した状態で アクション→ボリュームの変更→サイズを変更(任意の数字:今回は16)→変更
変更が反映され状態がin-useになったらOK。


あとはターミナルからEC2にログインし、以下のコマンドを順に実行していく。

$ sudo growpart /dev/xvda 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=33550303 end=33554399

xvdaが16GBに変更されていることが確認できる。

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk 
└─xvda1 202:1    0   8G  0 part /

ファイルシステム上は変更されていないので次のコマンドで変更できる。

$ sudo xfs_growfs /dev/xvda1
meta-data=/dev/xvda1             isize=512    agcount=4, agsize=524159 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0
data     =                       bsize=4096   blocks=2096635, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2096635 to 4193787

変更が反映されていたら以下のように容量が8GB→16GBに変更されており、
使用率が低減できていることが確認できる。

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk 
└─xvda1 202:1    0  16G  0 part /

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         474M     0  474M    0% /dev
tmpfs            492M     0  492M    0% /dev/shm
tmpfs            492M   13M  479M    3% /run
tmpfs            492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1        16G  5.6G   11G   35% /
tmpfs             99M     0   99M    0% /run/user/1001


無事に起動できるようになり、容量にもかなりの余裕ができた。

$ docker-compose build
Building web
:
Successfully built 99f5770ca10a
Successfully tagged app_web:latest

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         474M     0  474M    0% /dev
tmpfs            492M     0  492M    0% /dev/shm
tmpfs            492M   14M  479M    3% /run
tmpfs            492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1        16G  8.1G  8.0G   51% /    //容量に余裕ができた
tmpfs             99M     0   99M    0% /run/user/1001


参考記事
https://www.souichi.club/aws/aws-ebs/
CentOS 7からは、xfs_growfsというコマンドを使うことになったようだ。
https://qiita.com/ponsuke0531/items/04153c6228516e48a55e

2
3
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
2
3