6

次の例があります

version: '2'

services:
  proxy:
    container_name: proxy
    hostname: proxy
    image: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - proxy_conf:/etc/nginx
      - proxy_htdocs:/usr/share/nginx/html

volumes:
  proxy_conf: {}
  proxy_htdocs: {}

これは正常に動作します。実行するdocker-compose upと、それらの名前付きボリュームが作成され/var/lib/docker/volumes、すべて問題ありません。ただし、ホストからは/var/lib/dockerルートとしてしかアクセスできません。これroot:rootは (理にかなっています)。ホストのディレクトリをより賢明で安全なものにする方法があるかどうか(ホストでほとんどのことを行うために使用する比較的特権のないユーザーなど)、またはそれを手動でchown吸う必要があるかどうか疑問に思っていました。chown他の問題を回避するためのスクリプトをすでにいくつか作成し始めているので、数行余分に追加しても大きな問題にはなりませんが、自分で作成した自動化を最小限に抑えたいと考えています。できます-愚かな間違いの可能性が少なくなります。

ちなみに、いいえ: ボリュームを作成する代わりにホスト ディレクトリをマウントすると、それらはオーバーレイされます。

追加点: ボリュームをより便利な場所に移動することはできますか? と言う/home/myuser/myserverstuff/volumes

4

1 に答える 1

20

内部のファイルに直接アクセスしようとしないことをお勧めします/var/lib/docker。これらのディレクトリは、docker デーモンによって管理されることを意図しており、いじられることはありません。

ボリューム内のデータにアクセスするには、いくつかのオプションがあります。

  • バインドマウントされたディレクトリを使用します(あなたはそれを考慮しましたが、あなたのユースケースには合いませんでした)。
  • 同じボリュームを使用し、そのコンテナーを介してアクセスできるようにする「サービス」コンテナーを使用します。たとえば、実行中のコンテナーssh(使用するscp) または SAMBA コンテナー ( svendowideit/sambaなど)
  • ボリューム ドライバー プラグインを使用します。あらゆる種類のオプションを提供するさまざまなプラグインがあります。たとえば、ローカル永続化プラグインは非常にシンプルなプラグインであり、 docker がボリューム データを保存する場所/var/lib/dockerを指定できます (つまり の外側) 。
于 2016-03-30T23:15:22.687 に答える