Внутри docker, с пользователем, подключитесь к демону docker

#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 
    ...