ボリュームAPIを使用してボリュームを作成する場合、つまり、コンテナーボリュームパターンは必ずしもベストプラクティスではなくなったため、次のようになりました。
# docker volume inspect test-data
[
{
"Name": "test-data",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/test-data/_data"
}
]
たとえば、/ data(別の物理ボリュームにマウントされている)にdockerボリュームが存在するようにします。
これはシンボリックリンクではできません。バインドマウントではできますが、Dockerに個別のボリュームのデフォルトの場所を変更する構成があるのではないかと思います。
2017: 17.05.0-ce(2017-05-04) の場合、 PR 28696 は非推奨の--graph
フラグまたは--data-root
:- コミット1ecaed
名前「
graph
」は、昔のデフォルトの場所/var/lib/docker/graph
にディレクトリがあったときの昔の言葉です。ただし、フラグは、イメージデータだけでなく、ボリューム、コンテナ、およびネットワークのデータも含む「
graph
」ディレクトリの親ディレクトリのパスを示します。
最新バージョンのdockerでは、このディレクトリにはswarmクラスター状態とノード証明書も含まれています。
issue 5922 および PR 5978 により、ドキュメントが更新されました。
例 :
ExecStart=/usr/bin/dockerd -H fd:// --data-root=/mnt/ssd/lib/docker
2016(現在廃止予定)
/var/lib/docker
自体を変更するdockerオプションのみを知っており、サブフォルダー(dockerデーモンストレージドライバーで使用される "graph")の一部 )
dockerデーモン "その他のオプション" を参照してください:
Dockerは、Dockerデータディレクトリ(
/var/lib/docker
)および/var/lib/docker/tmp
のソフトリンクをサポートしています。DOCKER_TMPDIR
およびdataディレクトリは次のように設定できます。
DOCKER_TMPDIR=/mnt/disk2/tmp /usr/local/bin/docker daemon -D -g /var/lib/docker -H unix:// > /var/lib/docker-machine/docker.log 2>&1
# or
export DOCKER_TMPDIR=/mnt/disk2/tmp
/usr/local/bin/docker daemon -D -g /var/lib/docker -H unix:// > /var/lib/docker-machine/docker.log
「 ホストマシンのdockerイメージはどこにありますか? (およびコンテナー/ボリュームにも適用されます):
/var/lib/docker
ディレクトリの内容は Dockerがストレージに使用しているドライバー上 によって異なります。
Dockerの スタートアップパラメーター--data-root
という名前のいずれかを変更することにより、Dockerがボリュームを含むファイルを保存する場所を変更できます。
サービス管理にsystemdを使用している場合、ファイルは通常/lib/systemd/system/docker.service
にあります。ファイルを次のように編集します。
# Old - taken from the generated docker.service file in Ubuntu 16.04's docker.io package
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
# New
ExecStart=/usr/bin/dockerd --data-root /new_location/ -H fd:// $DOCKER_OPTS
または、デフォルトで/etc/docker/daemon.json
に設定されるDockerデーモン構成ファイルを編集できます。
Dockerデーモンを再起動すると、ボリュームは/new_location/volumes/{volume_name}/_data
になります
注:本番およびローカルでも注意してください!また、既存のデータを/var/lib/docker/
から新しい場所に移動して、Dockerインストールが正常に機能するようにする必要があります。
特定のフォルダーを特定の場所に配置する場合は、新しい場所からシンボリックリンクを使用できます。
/ var/lib/dockerのコンテンツを新しい場所に移動してdockerの保存場所を移動し、新しい場所を指すシンボリックリンクを配置しました(このソリューションはここから https:// askubuntu。 com/questions/631450/change-data-directory-of-docker ):
注意-これらの手順は、現在の/ var/lib/dockerが実際のディレクトリ(別の場所へのシンボリックリンクではない)であることに依存しています。
1)ドッカーを停止します:_
service docker stop
_。 Dockerプロセスが実行されていないことを確認します:_ps aux | grep -i [d]ocker
_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)コンテナを再起動します(シンボリックリンクを解決します)
Azure VM Docker 18.09.2でのUbuntu 18.04.1 LTSで作業しました