Скрыть точку монтирования в докер-контейнере

У меня есть хост докеров и сервер NFS, разделяющий путь, например /storage, к хосту докеров. Я могу смонтировать общий ресурс NFS непосредственно на хосте докера или использовать том NFS для доступа к данным в общем ресурсе. Конечно, в каждом контейнере докеров есть несколько подпапок, например

  • контейнер1
    • vol1 a в NFS:/storage/container1/vol1
  • контейнер2
    • vol1 a в NFS:/storage/container2/vol1
    • vol2 a в NFS:/storage/container2/vol2
  • контейнер3
    • vol1 a в NFS:/storage/container3/vol1
    • vol2 a в NFS:/storage/container3/vol2

В случае использования томов NFS напрямую через docker-compose.yml:

...
volumes:
  file-vol:
    driver: local
    driver_opts:
      type: "nfs"
      device: ":/storage/container1/vol1"
      o: addr=nfshost,rw,nosuid,noatime,nfsvers=4
...

то я могу видеть внутри работающего контейнера с mount

:/storage/container1/vol1 on /var/www/html type nfs4 (rw,nosuid,noatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=<dockerhost>,local_lock=none,addr=<nfshost>)

Когда я заменяю этот том на:

...
volumes:
  file-vol:
    driver_opts:
      type: none
      device: "/srv/storage/container1/vol1"
      o: bind
...

Где /srv/storage — общая папка Linux NFS, смонтированная через mount -t nfs nfshost:/storage /srv/storageто я получаю mount вывод внутри контейнера:

<nfshost>:/storage/container1/vol1 on /var/www/html type nfs4 (rw,nosuid,noatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=<dockerhost>,local_lock=none,addr=<nfshost>)

В обоих случаях внутри док-контейнера я вижу хост NFS и точку монтирования. «Плохой процесс» может подумать об этом и попытаться смонтировать другое местоположение NFS (например, /storage/container2/vol1) и иметь полный доступ к этому местоположению, потому что здесь нельзя использовать Kerberos (я думаю). Также я не могу запретить доступ к этому месту через NFS-сервер, потому что он исходит с того же IP-адреса. Также весь контейнер запускается от пользователя root (довольно часто контейнер не без root).

Есть ли способ запретить доступ к container1 для монтирования томов container2 на сервере NFS или способ скрыть тот факт, что папка /var/www/html является точкой монтирования NFS?

докер

ТРВ

1 ответ
1

Устанавливать NFS:/storage под /storage на вашем хосте Docker.

Смонтируйте тома из /storage вместо NFS:/storage/.

Джеральд Шнайдер

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *