Если вы запустите docker exec <your_container> stat /var/lib/mysql
на своем хосте, чтобы проверить разрешения для /var/lib/mysql
папки в контейнере , то вы увидите, что его uid равен 27
(пользователь mysql
) и Гид 27
(группа mysql
):
File: '/var/lib/mysql'
Size: 4096 Blocks: 8 IO Block: 4096 directory
...
Access: (0750/drwxr-x---) Uid: ( 27/ mysql) Gid: ( 27/ mysql)
...
Когда вы монтируете том между вашим хостом и контейнером, Docker меняет разрешения для смонтированного каталога на вашем хосте в соответствии с тем, что находится внутри контейнера (здесь uid=27
, gid=27
).
То, что вы видите со своего хоста, является нормальным: 27
, потому что у вас нет пользователя на хосте с uid=27
, и вы видите группу video
, потому что у этой группы gid=27
на вашем хосте. (Вы можете проверить это, запустив getent group video
).
Вы можете изменить mysql
uid и gid внутри контейнера, чтобы они соответствовали тем, которые установлены на вашем хосте, но я настоятельно не рекомендую вам делать это. Вместо того, чтобы монтировать локальные каталоги, вы бы предпочли использовать тома , если вы хотите сделать резервную копию ваших данных, например.