Как переименовать создаваемый автоматически Docker volume?
При запуске утилиты docker-compose со следующими настройками:
version: "3"
services:
Database:
image: postgres
container_name: Database
restart: always
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: "*****" # TODO Переместить в .env
создаётся автоматически volume для базы данных.
Имя его, судя по всему, является хэш-суммой, например b8e00e114ac2d57b5907e0bd75cb046721b50eeff5d74f12a.
Поскольку в условиях коммерческой разработки необходимо организовывать всё, что имеет отношение к разработке, в том числе Docker-образы, контейнеры и volume-ы, то нужно присвоить volume-у имя, по которому можно понять, к какому проекту он отновится. Как это сделать?
Ответы (1 шт):
создаётся автоматически volume для базы данных
Нет, не создается. У вас не указан ни один том в конфигурации. То что вы видите - скорее всего слой, который был создан поверх слоя образа. Эти данные можно легко потерять.
Рекомендую прочитать как правильно хранить данные.
В вашем случае docker-compose.yml должен быть таким:
services:
Database:
...
volumes:
- myproject:/var/lib/postgresql/data
volumes:
myproject:
driver: local
docker volume ls в таком случае выдаст примерно такое имя ..._myproject.
Но все же лучше не использовать volume, а монтировать каталог хост-системы через "bind mount", что повысит скорость работы с диском:
postgres:
...
volumes:
- /var/docker/postgres:/var/lib/postgresql/data
Тут /var/docker/postgres - каталог хост-системы, называйте понятным для вас образом.
