#問題#
Dockerで10GBほどのコンテナをexportしてimportしようとしたが、おそらくメモリの問題で出来なかった。
結論としては自分の場合、StrageDriverの選択に問題があったらしいです。
devicemapperだとうまくいかないらしい。
ネット上では同じような人がたまに見られたけど具体的な解決策は特に見当たらなかったので備忘録として。
(StorageDriverは$ docker info
で確認出来ます)
###環境###
・CentOS 7
・Storage Driver: devicemapper → overlayに変更
・Docker version 1.12.6
#dockerでのStorage Driverの変更方法#
参考:https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/#configure-docker-with-the-overlay-or-overlay2-storage-driver
overlay
もしくはoverlay2
だと問題なく動くためそちらに変更する。
overlay2
の方が優れているのだがlinux kernelのバージョンが4.0以上であることが条件
手順
[1] Dockerを停止
$sudo service docker stop
[2] /var/lib/dockerを一時的に退避
$cp -au /var/lib/docker /var/lib/docker.bk
[3]
If you want to use a separate backing filesystem from the one used by /var/lib/, format the filesystem and mount it into /var/lib/docker. Make sure add this mount to /etc/fstab to make it permanent.(引用)
[4] /etc/docker/daemon.jsonの編集
overlayへの変更
{
"storage-driver": "overlay"
}
overlay2への変更
{
"storage-driver": "overlay2"
}
centOSでoverlay2を使用する場合
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
[5] Dockerを起動
$sudo service docker start
#コメント#
私も詳しくはわかりませんがdevicemapperは結構問題が多いらしいです。
とりあえず当方環境ではこれで大きなイメージファイルも問題なくimport出来るようになりました。