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