-
Notifications
You must be signed in to change notification settings - Fork 13
change_docker_image_directory
通常、docker imageは/var/lib/docker以下に保存されますが、Dockerの使い方によっては容量に余裕がある別ストレージに保存したいということもあります。ここではdocker image保存先を外部ストレージに変更する方法をまとめます。
筆者は以下の環境で動作確認しました。
- OS : Ubuntu 22.04 64 bit
- Docker Engine : v23.0.4
設定変更を行う前にdockerのサービスを停止させます。
$ sudo service docker stop
$ sudo systemctl stop docker.socketこれまでのデータは/var/lib/dockerに残っているので外部ストレージにデータを退避します。
以降の説明では/mnt/extraに外部ストレージがマウントされていることとします。
$ sudo mkdir /mnt/extra/docker
$ sudo rsync -aXS /var/lib/docker/. /mnt/extra/docker//etc/docker/daemon.jsonに設定を記述することでdocker imageのデータ保存先を/mnt/extra/dockerに設定します。
Docker Engineのバージョンによって設定方法が異なる点に注意が必要です。
/etc/docker/daemon.jsonに以下のような記述を行い、docker imageのデータ保存先を/mnt/extra/dockerに設定します。
{
"graph": "/mnt/extra/docker"
} /etc/docker/daemon.jsonに以下のような記述を行い、docker imageのデータ保存先を/mnt/extra/dockerに設定します。
https://docs.docker.com/engine/release-notes/23.0/#removedに
Remove the
-gand--graphdaemon options in favor of--data-root.
とあるようにgraphオプションが削除されたため、graphではなくdata-rootを指定する必要があります。
{
"data-root": "/mnt/extra/docker"
} これまでの設定を反映するために以下のコマンドを実行し、デーモンをリロードしてdockerサービスを起動します。
$ sudo systemctl daemon-reload
$ sudo service docker start$ docker info | grep "Docker Root Dir"と実行して
Docker Root Dir: /mnt/extra/dockerとなっていれば設定が正しく反映できていることがわかります。
これまでの設定で/var/lib/dockerは不要になったので削除しておきます。
$ sudo rm -rf /var/lib/docker