#docker
#docker
Вопрос:
В Dockerfile,
RUN apt-get update ; apt-get install -y docker.io ; apt-get clean
RUN newgrp docker
RUN adduser --disabled-password --uid ${UID} --ingroup docker --gecos '' test
ENTRYPOINT ["/bin/bash"]
Я пытаюсь использовать docker внутри контейнера.
Я запускаю с:
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
с помощью root:
… -u 0
Я могу вызвать docker ps
С пользователем
… -u 1000
Я не могу
$ id
uid=1000(test) gid=107(docker) groups=107(docker)
$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http:///var/run/docker.sock/v1.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied
Использование находится в группе «docker».
Как я могу это решить?
Комментарии:
1. Группа должна иметь тот же числовой идентификатор группы, которому принадлежит файл сокета. Не имеет значения, имеют ли имена группа хостов и группа контейнеров
docker
, если у них разные идентификаторы групп.
Ответ №1:
Добавьте внешнюю группу docker
docker run
--user 1000
--group-add $(getent group docker | cut -d: -f3)
-v /var/run/docker.sock:/var/run/docker.sock
...