2016-09-13 24 views
1

私はdocker-composeを使用して2つのコンテナを生成しています。これらの2つのコンテナの間に/tmpディレクトリを共有したいと思います(できるだけホスト/tmpではできません)。これは、flaskから/tmpにいくつかのファイルをアップロードしていて、これらのファイルをceleryから処理したいからです。2つのコンテナ間での共有/ tmp

flask: 
    build: . 
    command: "gulp" 
    ports: 
     - '3000:3000' 
     - '5000:5000' 
    links: 
     - celery  
     - redis 
    volumes: 
     - .:/usr/src/app:rw 

celery: 
    build: . 
    command: "celery -A web.tasks worker --autoreload --loglevel=info" 
    environment: 
     - C_FORCE_ROOT="true" 
    links: 
     - redis 
     - neo4j 
    volumes: 
     - .:/usr/src/app:ro 

答えて

3

あなたは名前のボリュームを使用することができます

flask: 
    build: . 
    command: "gulp" 
    ports: 
     - '3000:3000' 
     - '5000:5000' 
    links: 
     - celery  
     - redis 
    volumes: 
     - .:/usr/src/app:rw 
     - tmp:/tmp 

celery: 
    build: . 
    command: "celery -A web.tasks worker --autoreload --loglevel=info" 
    environment: 
     - C_FORCE_ROOT="true" 
    links: 
     - redis 
     - neo4j 
    volumes: 
     - .:/usr/src/app:ro 
     - tmp:/tmp 

を構成するが、第一の容器のためのボリュームを作成する場合は、画像からの/ tmpの内容で初期化されます。その後は、docker-compose down -vで削除されるまで永続化されます。

+0

ホストはこのボリュームにアクセスできますか? – Raz

+0

間接的に。ホストは、コンテナ以外の実行中のプロセスと同様に、コンテナで必要なものにアクセスできます。ファイルシステム上の名前付きボリュームに直接アクセスすることはお勧めしませんが、将来、ドッカーがボリュームディレクトリ構造を移動する場合は、コンテナを使用してマウントしてコンテンツにアクセスしてください。ホストからの直接アクセスが必要な場合は、ホストボリュームを使用しますが、イメージから最初のコピーを失います。 – BMitch

関連する問題