Я хочу настроить контейнер MySQL и смонтировать удаленный том с помощью плагина vieux / sshfs, но у меня возникла проблема с отказом в разрешении при попытке доступа к тому в контейнере MySQL.
Я попытался смонтировать том с принадлежащим мне каталогом (Allen, 1001: 1001) на удаленном сервере (mysshvolume), но у меня полный доступ к тому внутри контейнера MySQL, однако, когда япопытался смонтировать удаленный каталог, принадлежащий MySQL (111: 113) (тестовый том MySQL), том можно успешно смонтировать в контейнер MySQL, но у меня нет разрешения на чтение или запись в удаленный каталог.Я пробовал chown в контейнере, --user 111: 113 при запуске docker, но оба метода не работают.
root@rfserver:/home/allen# docker volume inspect MySQL test
[
{
"CreatedAt": "0001-01-01T00:00:00Z",
"Driver": "vieux/sshfs:latest",
"Labels": {},
"Mountpoint": "/mnt/volumes/95eae2d1ab60a27c3f7148411e113754",
"Name": "mysqltest",
"Options": {
"password": "*********",
"sshcmd": "allen@10.224.45.138:/var/lib/mysql"
},
"Scope": "local"
}
]
root@rfserver:/home/allen# docker volume inspect mysshvolume
[
{
"CreatedAt": "0001-01-01T00:00:00Z",
"Driver": "vieux/sshfs:latest",
"Labels": {},
"Mountpoint": "/mnt/volumes/f0fee43b051fc77a52b42930880959f6",
"Name": "mysshvolume",
"Options": {
"password": "********",
"sshcmd": "allen@10.224.45.138:/home/allen"
},
"Scope": "local"
}
]
root@rfserver:/home/allen# docker run -it --name test -e \
MYSQL_ROOT_PASSWORD=123456 --privileged=true -v mysqltest:/world:z --user \
111:113 mysql /bin/bash
I have no name!@ee6149925779:/$ ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib
lib64 media mnt opt proc root run sbin srv sys tmp usr var
world
I have no name!@ee6149925779:/$ cd world
bash: cd: world: Permission denied
I have no name!@ee6149925779:/$ ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib
lib64 media mnt opt proc root run sbin srv sys tmp usr var
world
I have no name!@ee6149925779:/$ ls -l
ls: cannot access 'world': Permission denied
total 68
...
d????????? ? ? ? ? ? world
root@rfserver:/home/allen# docker run -it --name test -e
MYSQL_ROOT_PASSWORD=123456 --privileged=true -v mysqltest:/world:z mysql \
/bin/bash
root@958edae68525:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib
lib64 media mnt opt proc root run sbin srv sys tmp usr var
world
root@958edae68525:/# ls -l
total 72
...
drwx------ 1 111 113 4096 Sep 25 09:37 world
root@958edae68525:/# cd world
root@958edae68525:/world# ls
ls: reading directory '.': Permission denied
Когда я пытаюсь запустить docker с --user 111: 113 и проверяювладение мировым каталогом, это не может быть показано.Если я не определю ни одного пользователя при настройке контейнера с запуском Docker, владельцем мирового каталога будет 111: 113.Но, тем не менее, с обоими методами у меня нет прав доступа к мировому каталогу, который является удаленным томом, принадлежащим MySQL (111: 113) на удаленном сервере.Я ожидаю получить полный доступ к мировому каталогу без чоун на удаленном сервере.