Подтвердить что ты не робот

Как заменить volume_from в docker-composer v3

Я хочу знать эквивалент конфигурации ниже, чтобы соответствовать версии 3 docker-composer.yml! volume_from больше недействителен, поэтому я должен пропустить объем данных и заменить его томами верхнего уровня?

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
4b9b3361

Ответ 1

По умолчанию именованные тома позволяют обмениваться данными между контейнерами. Но некоторые проблемы с хранением данных в одном месте на главной машине после перезапуска контейнеров. Но мы можем использовать local-persist плагин docker для его исправления.

Для перехода на версию 3 вам нужно

1) установите local-persist плагин docker (если вы хотите хранить данные томов в определенном месте на главной машине)

2) изменить 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:

Также вы можете хранить данные томов на главной машине с помощью этой секции томов:

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

Но вы не можете указать путь для этого тома на главной машине