ボリューム API を介してボリュームを作成する場合、つまり、コンテナ ボリューム パターンが必ずしもベスト プラクティスではなくなった場合:
# docker volume inspect test-data
[
{
"Name": "test-data",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/test-data/_data"
}
]
たとえば、docker ボリュームを /data (別の物理ボリュームにマウントされている) に存在させたいと思います。
これはシンボリック リンクでは実行できませんが、バインド マウントでは実行できます。ただし、Docker で各ボリュームのデフォルトの場所を変更する構成があるかどうかが気になります。
ベストアンサー1
Dockerがボリュームを含むファイルを保存する場所を変更するには、起動パラメータと呼ばれる--data-root
。
サービス管理に 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
あるいは、デフォルトで に設定されている Docker デーモン構成ファイルを編集することもできます/etc/docker/daemon.json
。
Dockerデーモンを再起動すると、ボリュームは/new_location/volumes/{volume_name}/_data
注記/var/lib/docker/
: 本番環境でもローカルでも注意してください。dockerインストールが期待どおりに動作するには、既存のデータを新しい場所に移動する必要もあります。
特定のフォルダーを特定の場所に配置する場合は、新しい場所からのシンボリックリンクを使用できます。