Монтирование томов от имени пользователя root в контейнере - PullRequest
0 голосов
/ 28 марта 2019

Я хочу смонтировать том в контейнере докера как пользователь без полномочий root.Я использую следующее (k8s.yaml) -

volumeMounts:
        - name: volume-to-be-mounted
          mountPath: /location
volumes:
        - name:  volume-to-be-mounted
          hostPath:
            path: path
            type: DirectoryOrCreate

Этот том монтируется как root внутри контейнера.Но я хочу смонтировать его без полномочий root.Есть ли способ сделать это?Я также могу использовать https://docs.docker.com/storage/volumes/, но я хочу смонтировать тот же том и в другом контейнере (в том же пакете).

Некоторые решения, которые приходят на ум, но не подходятМой вариант использования -

  1. изменить права доступа к каталогу в точке входа (недопустимо, потому что точка входа будет запущена от имени пользователя без полномочий root.)
  2. https://stackoverflow.com/a/39576814/9081810 Яиспользуя k8s.yaml, чтобы указать мои требования.Я не знаю, как это решение подойдет.

Возможные решения, которые могут работать, но я не знаю, как это сделать -

  1. установить разрешения на 777во время монтажа тома.

Ответы [ 3 ]

1 голос
/ 28 марта 2019

вы можете рассматривать запуск контейнера init как пользователя root. Контейнер init и основной контейнер имеют одинаковый объем. Из инициализации контейнера обновите владение томом

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

Вы хотите смонтировать тот же том и в другом контейнере (в том же модуле).
Не думаю, что вы можете сделать это.
Определение модуля: A pod (as in a pod of whales or pea pod) is a group of one or more containers (such as Docker containers), with shared storage/network, and a specification for how to run the containers.
подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod/

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

Если вы используете kubernetes, вы можете использовать контекст безопасности и установить значение fsGroup.

Пример из документов

apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 1000
    fsGroup: 2000
  volumes:
  - name: sec-ctx-vol
    emptyDir: {}
  containers:
  - name: sec-ctx-demo
    image: gcr.io/google-samples/node-hello:1.0
    volumeMounts:
    - name: sec-ctx-vol
      mountPath: /data/demo
    securityContext:
      allowPrivilegeEscalation: false

Если вы просто используете докер ... ну, с 2013 года открыт выпуск

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...