LoginSignup
16
16

More than 5 years have passed since last update.

CoreOSでのDockerイメージの格納場所変更

Posted at

Docker on ubuntu なイメージの格納場所変更の方法は調べると出てくるんですけど、CoreOSでの変更方法が出てこなかったのでメモ。
状況としては、以下のような感じで変更に至りました。

  1. CoreOSの動いてるディスクそんなに大きくない(60GB程度)
  2. Dockerデフォルトのまま動かしてる(/var/lib/docker, btrfsで動いてる)
  3. ちょっとサイズのでかいコンテナ作った
  4. コミットしようとしたらスペースないよって怒られた
  5. 別にディスクくっつけてそっちに出さなきゃ!

docker commit するときはコミット時の差分の容量は空き容量としてないとコミットできないんですね(;´Д`)(当たり前だろ)

設定変更

/etc/systemd/system/docker.service のServiceセクションの ExecStart の起動コマンドを変更します。

ExecStart=/usr/bin/docker -d -s=btrfs -r=false -H fd://
ExecStart=/usr/bin/docker -d -s=btrfs -r=false -H fd:// -g 変更したいパス

再起動

systemctl daemon-reload
systemctl restart docker

トラブル

CoreOSはファイルシステムがbtrfsで、Dockerのストレージドライバもbtrfsがデフォルトになってるんですが、変更先をNFSにしちゃってました。
そのせいで再起動しても以下のようにログが出て動きませんでした。

Oct 16 10:51:08 DOCKER01 docker[32381]: 2014/10/16 01:51:08 docker daemon: 1.1.2 d84a070; execdriver: native; graphdriver: btrfs
Oct 16 10:51:08 DOCKER01 docker[32381]: [c3e1ee15] +job serveapi(fd://)
Oct 16 10:51:08 DOCKER01 docker[32381]: [c3e1ee15] +job initserver()
Oct 16 10:51:08 DOCKER01 docker[32381]: [c3e1ee15.initserver()] Creating server
Oct 16 10:51:08 DOCKER01 docker[32381]: 2014/10/16 01:51:08 Listening for HTTP on fd ()
Oct 16 10:51:08 DOCKER01 docker[32381]: prerequisites for driver not satisfied (wrong filesystem?)
Oct 16 10:51:08 DOCKER01 docker[32381]: [c3e1ee15] -job initserver() = ERR (1)
Oct 16 10:51:08 DOCKER01 docker[32381]: 2014/10/16 01:51:08 prerequisites for driver not satisfied (wrong filesystem?)

あー、ごめんなさい。
というわけで変更先もbtrfsにして解決しましたとさ。

devicemapperにすればよかったんじゃ?

そうなんですが、既に作っていたイメージ達が/var/lib/docker/btrfsとかでできていたのでどうやって移行したらいいのかわからずこういう感じにしちゃいました。
たぶんもうちょいちゃんと調べればそこらへんの移行方法もわかると思います。(エクスポートすればいいのかな)

16
16
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
16
16