LoginSignup
2
5

More than 5 years have passed since last update.

【学習メモ】 dockerのbase device sizeをdaemon.jsonで定義

Last updated at Posted at 2017-09-08

はじめに

いつものようにdocker buildしていたらエラーが出ました。

容量エラーの例
ApplyLayer write /var/lib/docker/image/devicemapper/layerdb/tmp/write-set-895086595/tar-split.json.gz: no space left on device stdout: {"layerSize":2447539969}
 stderr: 

devicemapperのbase device sizeの標準10Gがいっぱいのようです。
base device sizeを変更する手続きを見ていくと、/etc/sysconfig/docker/etc/sysconfig/docker-storageで指定すると変更できるようです。
が、手元の環境では反映されなかったのでdaemon.jsonに書いたら反映されたのでメモです。

動作環境

動作環境
CentOS7 7.3.1611
kernel 3.10.0-693.11.6.el7.el
docker :Server Version: 17.12.0-ce build c97c6d6
        Storage Driver: devicemapper
設定反映の流れ
systemctl stop docker     # dockerを止めて
rm -rf /var/lib/docker    # コンテナやキャッシュを全部削除して
systemctl daemon-reload   # 設定を再読み込みして
systemctl start docker    # dockerを起動

動いた例

/etc/docker/daemon.jsonに定義する

/etc/docker/daemon.jsonで20Gに定義したとき
{
  "storage-driver": "devicemapper",
  "storage-opts": [
                     "dm.use_deferred_removal=true",
                     "dm.basesize=20G"
                  ]
}
  • overlayfs2から入れ替えるとき、直接↑に変更すると動かなかったので、storage-driverの1行のみに変えてrmdaemon-reloadを実施、その後storage-optsを追加すると動作するようになりました。

(公式)Select a storage driver

ダメだった例

ダメだった例
/etc/sysconfig/docker
/etc/sysconfig/docker-storage
で定義したとき

DOCKER_STORAGE_OPTIONS=--storage-opt dm.baseize=20G
DOCKER_STORAGE_OPTIONS= --storage-opt dm.baseize=20G

参考資料
Docker のベースサイズを拡張する
3.18 コンテナが使用するディスクサイズ(dm.basesize)を変更する

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