Docker создает и заполняет каталог пользователем, которого использует mysql
image. Этот пользователь, конечно, имеет uid
внутри контейнера. Это uid
, случается, 999.
Пользователь с этим uid
существует в контейнере, но не существует на вашем хосте.
На контейнере папка выглядит так:
root@f86ffddac96c:/var/lib# ls -l
total 32
...
drwxr-xr-x 5 mysql mysql 4096 Mar 19 13:06 mysql
...
и на хосте это выглядит так.
root@machine:/home/username/mysql/var/lib# ls -l
total 4
drwxr-xr-x 5 999 docker 4096 Mar 19 15:06 mysql
Это просто означает, что у пользователя mysql
есть uid
из 999. И так как вы создаете том связывания из контейнера в хост, все файлы в этом томе должны иметь одинаковые разрешения для одинаковых uid
с. На моем тестовом компьютере Docker имеет guid
из 999, поэтому он отображается так же на стороне хоста.
Что касается «исправления» этого, вы можете либо использовать (на уровне хоста) известный uid
в файле docker вместо файла по умолчанию, либо вы можете просто проигнорировать его, поскольку он работает точно так, как задумано, если только нет конкретная причина, по которой вы хотите, чтобы в вашей хост-системе отображалось определенное имя для определенного uid
.