Как изменить мощность монтируемой директории в Docker - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу хранить данные своей базы данных постоянно, используя docker-compose в WSL (Windows).Мой файл docker-compose.yml находится ниже./C/Users/XXX/Documents/dev/db-data - это каталог данных базы данных, и этот каталог будет хранить данные постоянно.Я мог бы построить контейнер, используя ниже docker-compose.yml.

db_docker:
    image: mysql:5.7
    container_name: mysql
    env_file:
        - .env.mysql
    ports:
        - "3306:3306"
    volumes:
        - /C/Users/XXX/Documents/dev/db-data:/var/lib/mysql

Но я не смог получить доступ к базе данных этого контейнера, и сообщение об ошибке, как показано ниже.

ОШИБКА 29(HY000): файл './mysql/user.MYD' не найден (код ошибки: 13 - разрешение отклонено)

Я искал это сообщение об ошибке и обнаружил, что владельцем /var/lib/mysql является root:root.drwxrwxrwx 2 root root 4096 27 ноября 03:42 mysql drwxrwx --- 2 mysql mysql 4096 16 ноября 01:14 mysql-files drwxr-x --- 2 mysql mysql 4096 16 ноября 01:14 mysql-keyring

Я проверил, как изменится владение, если я удалю настройку томов из docker-compose.yml.И я построил контейнер, используя приведенный ниже установочный файл.

db_docker:
    image: mysql:5.7
    container_name: mysql
    env_file:
        - .env.mysql
    ports:
        - "3306:3306"

В этих условиях владельцем /var/lib/mysql является mysql:mysql, и я мог получить доступ к своей базе данных.

Исходя из этих фактов,При монтировании файла будет установлено право владения от /var/lib/mysql до root:root, и я смогу решить свою проблему, если смогу изменить разрешение /var/lib/mysql.

Далее, я попытался, как показано ниже.999 - это UID и GID mysql, но разрешение /var/lib/mysql равно root:root.

db_docker:
    image: mysql:5.7
    container_name: mysql
    env_file:
        - .env.mysql
    ports:
        - "3306:3306"
    user: "999:999"
    volumes:
        - /C/Users/XXX/Documents/dev/db-data:/var/lib/mysql

Это моя история мышления, и я до сих пор не смог решить эту проблему.Как изменить владельца подключенного каталога?

...