Ответ 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
Но вы не можете указать путь для этого тома на главной машине