Dockerがコンテナを保存する(またはlxcがコンテナを保存する)Dockerのデータディレクトリを変更するにはどうすればよいですか?サーバーにssdとハードドライブantがあり、コンテナーをハードドライブに保存する必要があります。ありがとう
このガイド で良い説明が得られると思います。
Dockerデーモンを起動するときに-gオプションを使用して、Dockerのストレージベースディレクトリ(コンテナとイメージが移動する場所)を変更できます。
Ubuntu/Debian:
/etc/default/docker
オプションを使用して-g
ファイルを編集します:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"
Fedora/Centos:
/etc/sysconfig/docker
を編集し、other_args変数に-g
オプションを追加します。other_args="-g /var/lib/testdir"
。複数のオプションがある場合は、それらを「」で囲むようにしてください。再起動後、(サービスdocker restart)Dockerは新しいディレクトリを使用する必要があります。シンボリックリンクを使用することは、画像ストレージを変更する別の方法です。
注意-これらの手順は、現在の/ var/lib/dockerが実際のディレクトリ(別の場所へのシンボリックリンクではない)であることに依存しています。
1)ドッカーを停止します:
service docker stop
。 Dockerプロセスがps fauxを実行していないことを確認します2)ダブルチェックドッカーが実際に実行されていません。現在のdockerディレクトリを見てください:ls
/var/lib/docker/
2b)バックアップを作成する-
tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz
3)
/var/lib/docker
ディレクトリを新しいパーティションに移動します:mv /var/lib/docker /mnt/pd0/docker
4)シンボリックリンクを作成します:
ln -s /mnt/pd0/docker /var/lib/docker
5)ディレクトリ構造を覗いて、mv:
ls /var/lib/docker/
(末尾のスラッシュに注意してください。6)ドッカーのバックアップを開始
service docker start
7)コンテナを再起動してシンボリックリンクを解決します)
Ubuntuの最新のDockerバージョンでは、/ etc/default/daemon.jsonを次のように編集します。
{
"data-root": "/new/location"
}
@MattKの答えを拡張するには:
Dockerデーモンの制御に関するDockerドキュメント は、プラットフォームに依存しないこれを行う方法を示しています。
/etc/docker/daemon.jsonファイルを編集して次の行を含めます
{
"data-root": "/mnt/docker-data",
(...)
}
ここで、/mnt/docker-data
は、Dockerイメージとコンテナーを配置するディレクトリです。
それから
Sudo systemctl restart docker
実行することで動作したかどうかを確認できます
docker info
Docker Root Dir:
で始まる行の内容を探します。
https://stackoverflow.com/a/50217666/220931 および https://unix.stackexchange.com/q/452368/3604 も参照してください。
data
のdocker
ディレクトリを変更するには、オプション-g /my/data
を指定して実行する必要があります。私の/etc/default/docker
で設定したもの:
DOCKER_OPTS="-g /srv/docker"
私のメモ も参照してください。
data
のlxc
ディレクトリーを変更するには、/etc/lxc/lxc.conf
に入れます:
lxc.lxcpath = /srv/lxc
Docker 1.13.0にアップグレードします。
リリースノートから:
- New
The storage location of the Linux volume can now be moved