разрешение отклонено проблема при использовании контейнера MySQL и монтирования удаленного тома - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу настроить контейнер 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) на удаленном сервере.Я ожидаю получить полный доступ к мировому каталогу без чоун на удаленном сервере.

...