Привязка docker.sock меняет право собственности на файл на root:rootLinux

Ответить Пред. темаСлед. тема
Гость
 Привязка docker.sock меняет право собственности на файл на root:root

Сообщение Гость »

Я пытаюсь запустить хост Jenkins внутри контейнера Docker для итоговой работы моего колледжа.
Мой конвейер также будет создавать больше контейнеров, и для этого я привязываю /var/run/docker.sock< /code>, чтобы совместно использовать сокет хоста Docker с Jenkins и создавать «родственные» контейнеры.
Вот изображение моего хоста Jenkins:

Код: Выделить всё

FROM jenkins/jenkins:lts

USER root

RUN apt-get update -qq \
&& apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
RUN apt-get update && apt-get -y install docker docker-ce-cli

RUN groupadd -g 1001 docker
RUN usermod -aG docker jenkins

USER jenkins
На моем хосте Docker владельцем файла docker.sock является root:docker.
Однако когда я привязываю файл docker.sock к хост-контейнеру Jenkins, он меняет владельца файла на root:root (пользователь root, корневая группа), что делает Jenkins неспособным получить к нему доступ, поэтому я получите сообщение об отказе в доступе:

Код: Выделить всё

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json: dial unix /var/run/docker.sock: connect: permission denied
Я могу вручную изменить группу файла docker.sock на группу docker, чтобы пользователь jenkins мог получить к ней доступ, с помощью эта команда:

Код: Выделить всё

chgrp docker /var/run/docker.sock
И это прекрасно работает! Но по какой-то причине он не сохраняется после перезапуска системы/движка :(
Я не знаю, является ли это ошибкой Docker или if Я делаю что-то не так.
Меня больше всего беспокоит безопасность в этом проекте. Я не хочу запускать контейнеры с root-доступом, потому что я понимаю, что это угроза безопасности, и я тоже. хочу вручную изменять разрешения docker.sock каждый раз при загрузке компьютера.
Я настоятельно подумываю о переходе на подход Sysbox, хотя до сих пор мало что о нем знаю и какие проблемы у меня могут возникнуть.
  • Я использую Windows и использую Docker Desktop v4.29.0

    Моя версия движка 26.0.0 (WSL2)
Любая помощь Заранее спасибо!
Пытался запустить команду docker ps внутри моего контейнера Jenkins. Вместо этого она должна вернуть все запущенные в данный момент контейнеры.< /п>

Подробнее здесь: https://stackoverflow.com/questions/784 ... o-rootroot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»