Docker のイメージ・コンテナの格納場所の移動
既定では Docker のイメージやコンテナは /var/lib/docker
に格納される
でもそんなとこに何ギガも容量取られると困るー! と思ったのでイメージやコンテナの保管場所を移動方法をまとめました
(そもそも /var/lib/docker
に別ストレージをマウントしろよって話もありますが、別にそれでもいいです)
環境
- Ubuntu 18.04
- Docker 17.12.1-ce
手順
とりあえずdocker止める
sudo su
systemctl stop Docker
Unitファイルを編集
/lib/systemd/system/docker.service
を/etc/systemd/system
にコピペ
cp /lib/systemd/system/docker.service /etc/systemd/system/
/etc/systemd/system/docker.service
から以下の行を探して --data-root
オプションをつける
編集前
ExecStart=/usr/bin/dockerd -H fd://
編集後
ExecStart=/usr/bin/dockerd -H fd:// --data-root /path/to/docker
docker再起動
systemctl daemon-reload systemctl restart docker
動作確認
docker run hello-world
/path/to/docker
の中にこんなファイルが出来てたらOK。 /var/lib/docker
は消してしまいましょう
/path/to/docker ├── builder ├── containerd ├── containers ├── image ├── network ├── overlay2 ├── plugins ├── runtimes ├── swarm ├── tmp ├── trust └── volumes
注意点
NTFSなストレージには移動できないので注意。NTFS使ってると docker run
したあとでこんなエラーメッセージが返ってくる
docker: Error response from daemon: error creating overlay mount to /path/to/docker/overlay/e86c5ccec4b435b048c3d64753a8dbcedc8655753ee18f256f0800fdedb783c6-init/merged: invalid argument.
調べてみたらNTFS はサポート外だから使うなってことらしい*1
なので大人しく ext4 のストレージに移動するのが吉