Докер для Windows & MySQL официальный контейнер - PullRequest
0 голосов
/ 16 апреля 2019

Я использую MySQL в последнем официальном Docker-контейнере MySQL. Хост-машина - Windows 10.

Я использую «docker-compose up mysql» для запуска следующего сервиса:

version: '3.4'

services:
  mysql:
    image: mysql/mysql-server:latest
    container_name: sqlstore
    ports:
     - '3306:3306'
    expose:
     - '3306'
    env_file:
     - ./sqlconfig.env  
    volumes:
     - ./data:/var/lib/mysql

Проблема, с которой я сталкиваюсь, заключается в том, что когда файлы базы данных MySQL находятся на томе хоста, MySQL не запускается, и я получаю следующее сообщение об ошибке: «у вас уже есть другой сервер mysqld, работающий в сокете:» /var/lib/mysql/mysql.sock""

Стоит отметить, что я удостоверился, что порт не используется другими процессами, а файлы MySQL действительно записываются в каталог ./data на хосте.

Однако, когда файлы MySQL находятся не на хосте, а внутри самого докера, все работает правильно.

1 Ответ

0 голосов
/ 16 апреля 2019

У меня была такая же проблема. Если вы работаете в контейнере Linux, проблема, скорее всего, связана с другим типом файловой системы, которую имеет контейнер MySQL и хост-компьютер Windows. Использование именованных томов, т. Е. some-data:/var/lib/mysql может решить проблему. Рабочий пример:

version: '3.4'

services:
  mysql:
    image: mysql/mysql-server:latest
    container_name: sqlstore
    ports:
     - '3306:3306'
    expose:
     - '3306'
    env_file:
     - ./sqlconfig.env
    volumes:
     - datavol:/var/lib/mysql
volumes:
  datavol:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...