Добрый день!
Создаю контейнер с mysql. Для этого использую вот такой файл docker-compose.yml:
version: '3.4'
services:
db:
image: mysql/mysql-server
restart: always
env_file: '.env'
volumes:
- mysql-data:/var/lib/mysq
volumes:
mysql-data:
external: true
name: mysql-data
Создаю хранилище и проверяю:
docker volume create --name=mysql-data
docker volume ls
DRIVER VOLUME NAME
local mysql-data
Всё нормально. Запускаю:
docker-compose -f docker-compose.yml up
Всё стартует нормально и...
docker volume ls
DRIVER VOLUME NAME
local 16864e5cc4cb7157263d746ce0b07a4aee31f89c5af47a3bdb7f83d1571f7066
local mysql-data
...появляется ещё одно хранилище. Заглядываю в него и вижу, что там лежат файлы БД mysql. А в том хранилище, которое создал я ничего нет.
Попробовал с двумя контейнерами с хабдокера (mysql и mysql/mysql-server) - поведение одинаковое.
docker --version
Docker version 17.12.0-ce, build c97c6d6
docker-compose --version
docker-compose version 1.18.0, build 8dd22a9
Пробовал и вариант с автоматическим созданием хранилища:
version: '3.4'
services:
db:
image: mysql
restart: always
env_file: '.env'
volumes:
- mysql-data:/var/lib/mysq
adminer:
image: adminer
restart: always
ports:
- 8080:8080
volumes:
mysql-data:
В этом случае создаётся хранилище mysql_mysql-data и ещё одно с длинным именем (4cb7157263d746ce0b...). И все данные в этой длинноимённой папке.
В чём ошибка, что делаю не так?