Докер не может читать из SAN хоста - PullRequest
0 голосов
/ 10 апреля 2019

Итак, у меня есть контейнер приложений Tomcat, развернутый на 3 разных хостах Docker (один и тот же docker compose / dockerfile).Все эти хосты совместно используют логический том SAN, смонтированный в / var / opt / data / flat / APP / files.Мои контейнеры должны иметь возможность чтения или записи в эту сеть хранения данных.Однако только мой первый докер-контейнер может сделать это без проблем.В чем может быть разница между моими 3 экземплярами, которые заставляют его работать на первом, а не на трех других.Что-то, что я мог изменить на своем первом хосте, а не на других?По сей день я не могу понять, что есть.

Docker compose extract:

  volumes:
      - /var/opt/data/flat/APP/log:/var/opt/data/flat/APP/log:Z
      - /var/opt/data/flat/APP/files:/var/opt/data/flat/APP/files

Для 3 хостов права идентичны, и у меня нет проблем с чтением / записью:

[app]$ ls -al /var/opt/data/flat/APP
drwxrwxrwx. 3 app  app  1024 Apr  9 16:05 conf
drwxrwxrwx. 6 app  app  4096 Apr 10 13:45 files
drwxrwxrwx. 2 app  app  4096 Mar 29 14:09 log
drwxrwxrwx. 2 app  app  1024 Mar 18 11:48 scripts

Из 3 контейнеров:

root@38033790df5d:/var/opt/data/flat/APP# ls -al /var/opt/data/flat/APP
total 8
drwxr-xr-x. 4 root   root      30 Apr  9 15:12 .
drwxr-xr-x. 3 root   root      17 Apr  9 15:12 ..
drwxrwxrwx. 6 nobody nogroup 4096 Apr 10 11:45 files
drwxrwxrwx. 2 nobody nogroup 4096 Mar 29 13:09 log

И ошибка, которую я получаю на контейнере № 2 и контейнере № 3:

root@9c8027865360:/var/opt/data/flat/APP# ls files
ls: cannot open directory 'files': Permission denied

Однако все мои контейнеры, похоже, могут записывать журналы в папку журнала безлюбая проблема.

Содержимое файла /etc/docker/daemon.json на 3 хостах:

{"userns-remap": "default"}

1 Ответ

0 голосов
/ 11 апреля 2019

Решено, SELinux был настроен для разрешения на первой виртуальной машине и принудительного применения на остальных.Так что я полностью отключил его на каждом хосте.

И я соответственно обновил свой составной файл:

volumes:
      - /var/opt/data/flat/APP/log:/var/opt/data/flat/APP/log:Z
      - /var/opt/data/flat/APP/files:/var/opt/data/flat/APP/files:z
...