戻る
2ee4d1b

Dockerイメージの格納先を変更する

夏ですね。響け!ユーフォニアムの事を考えて熱波をやり過ごしていますが人間限界がある。 /var/に乗せていれば特に問題はないが、 私は/var/とは別で切ってraiserfs載せる運用を行っていたのでこれは結構痛かった。

簡単な対処としてdocker.serviceを触って格納先を/以下の/opt/dockerに変更する方法があるものの、 これだとパッケージマネージャがdocker.serviceを更新する度にリセットされてしまう。

解決策

これでイメージとか全部消えるので注意。

systemctl stop docker.service
mkdir -p /opt/docker/
rm -R /var/lib/docker/
mkdir /etc/systemd/system/docker.service.d/
touch /etc/systemd/system/docker.service.d/override.conf

それでoverride.confを以下のように編集する。

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --data-root /opt/docker

上記のように書き換えたあと、下のコマンドで更新すれば終わり。

systemd daemon-reload

ExecStart=が無いと docker.service: Service has more than one ExecStart= setting, which is only allowed for Type=oneshot services. Refusing. と言わる。 systemdにはドロップインファイルと呼ばれるユーザーが独自にserviceの一部を書き換えるための機能が提供されており、 これはパッケージ管理システムの外にあるので恒久的な変更が出来る。 systemctl editを使ってもいいです。今まで知らなかった。 けしずみ(@ray45422)さんに教えていただきました。ありがとうございます。