53

ボリューム API を使用してボリュームを作成する場合、つまり、コンテナー ボリューム パターンが必ずしもベスト プラクティスではなくなったためです。

# docker volume inspect test-data
[
    {
        "Name": "test-data",
        "Driver": "local",
        "Mountpoint": "/var/lib/docker/volumes/test-data/_data"
    }
]

たとえば、docker ボリュームが /data (別の物理ボリュームにマウントされている) に存在するようにしたいと考えています。

これはシンボリック リンクでは実行できません。バインド マウントでは実行できますが、個別のボリュームごとにデフォルトの場所を変更するための構成が Docker にあるのではないかと思います。

4

4 に答える 4

53

と呼ばれる起動パラメータの 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

または、デフォルトで/etc/docker/daemon.json.

Docker デーモンを再起動すると、ボリュームが次のようになります。/new_location/volumes/{volume_name}/_data

: 本番環境でもローカルでも注意してください。/var/lib/docker/また、docker のインストールが期待どおりに機能するためには、既存のデータを新しい場所に移動する必要があります。

特定のフォルダーを特定の場所に配置する場合は、新しい場所からのシンボリック リンクを使用できます。

于 2018-08-25T15:37:04.427 に答える
23

2017: 17.05.0-ce (2017-05-04)では、PR 28696--graphがフラグを非推奨にするか--data-rootコミット 1ecaed0

" " という名前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デーモンストレージドライバーによって使用される「グラフ」の一部)

docker デーモンの「その他のオプション」を参照してください。

Docker は、Docker データ ディレクトリ ( /var/lib/docker) およびのソフトリンクをサポートしてい/var/lib/docker/tmpます。
およびデータDOCKER_TMPDIRディレクトリは次のように設定できます。

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 イメージはホスト マシンのどこに保存されますか?」で述べたように (コンテナ/ボリュームにも適用されます):

ディレクトリの内容は、Docker がストレージに使用しているドライバー/var/lib/dockerによって異なります。

于 2016-03-24T07:12:43.587 に答える