2017-02-15 14 views
11

Docker-composer.yml sürüm 3'e uyacak şekilde aşağıdaki yapılandırmanın eşdeğerini bilmek istiyorum! volumes_from artık geçerli değil, bu yüzden veri hacmini atla ve üst seviye birimlerle değiştirmem gerekiyor mu? Varsayılan adında hacimleri ileDocker-composer v3'te volumes_from nasıl değiştirilir

version: '2' 
services: 

    php: 
    build: ./docker-files/php-fpm/. 
    volumes_from: 
     - data 
    working_dir: /code 
    links: 
     - mysql 

    nginx: 
    image: nginx:latest 
    ports: 
     - "80:80" 
    volumes: 
     - ./nginx/default.conf:/etc/nginx/conf.d/default.conf 
    volumes_from: 
     - data 
    links: 
     - php 

    data: 
    image: tianon/true 
    volumes: 
     - .:/code 

cevap

7

Eğer konteynerler arasında veri paylaşımı sağlar. Ancak kapları yeniden başlattıktan sonra, ana makinede aynı yerde veri saklamakla ilgili bazı sorunlar var. Ancak, düzeltmek için local-persist docker eklentisini kullanabiliriz.

Eğer ana makinede) özellikle yere hacimleri veri depolamak istiyorsanız

1) yüklemek local-persist liman işçisi eklentisini (ihtiyaç sürüm 3'e geçiş için

2) modifiye docker-compose.yml

version: '3' 
services: 

    php: 
    build: ./docker-files/php-fpm/. 
    volumes: 
     - data:/code 
    working_dir: /code 
    links: 
     - mysql 

    nginx: 
    image: nginx:latest 
    ports: 
     - "80:80" 
    volumes: 
     - ./nginx/default.conf:/etc/nginx/conf.d/default.conf 
    volumes: 
     - data:/code 
    links: 
     - php 

    data: 
    image: tianon/true 
    volumes: 
     - data:/code 

# If you use local persist plugin 
volumes: 
    data: 
    driver: local-persist 
    driver_opts: 
     mountpoint: /path/on/host/machine/ 

# Or If you dont want using local persist plugin 
volumes: 
    data: 

Ayrıca, birim verilerini bu birim bölümüyle ana makineye de kaydedebilirsiniz:

volumes: 
    data: 
    external: true #< it means store my data to the host machine 

Ama

+0

Tamam ana makinede bu hacim için yolu belirtin olamaz, ama veriler: hizmet artık hiçbir işlevi yoktur? Ev sahibi sesini doğrudan paylaşarak herhangi bir olumsuzluk var mı? 'hacimleri:.:/Code' – prometheus

+1

Veri konteynerine yalnızca bu kapsayıcının kendi içinde verileri kapsüllemesi gerekiyorsa. Bu durumda, bu verileri basitçe yedekleyebilir, kabı (veri ile) başka bir ana bilgisayara taşıyabilirsiniz. Bu [salt veri kabı modeli] 'dir (http://container42.com/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/). Ancak başka bir yaklaşım kullanmak istiyorsanız: ana makine üzerinde verileri depolayın ve temel kapsayıcı için üçüncü taraf eklentileri yüklemek (örneğin, sunucuda belirli bir bağlama noktasına sahip olmak) yüklemek için veri kabı gereksizdir –

+5

Kurulumu başkalarıyla paylaşmak istediğinizde kabul edilemez kullanıcılar. Docker-compose sürüm 3 – chefarov