В обычной установке Docker для Mac мой docker.sock
принадлежит моему локальному пользователю:
$ stat -c "%U:%G" /var/run/docker.sock
juliano:staff
Даже если я добавлю пользователя и группу на свой Dockerfile
, при попытке запустить DinD от имени меня монтируется docker.sock
с помощью root:root
.
$ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--group-add staff \
--user $(id -u):$(id -g) \
"your-average-container:latest" \
/bin/bash -c 'ls -l /var/run/docker.sock'
srw-rw---- 1 root root 0 Jun 17 07:34 /var/run/docker.sock
В противном случае, запустив DinD от имени root, chown
заполняя сокет, затем запустив команды , прервет докер хоста .
$ docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--group-add staff \
"your-average-container:latest" \
/bin/bash
$ chown juliano:staff /var/run/docker.sock
$ sudo su juliano
$ docker ps
[some valid docker output]
$ exit
$ docker ps
Error response from daemon: Bad response from Docker engine
Я видел людей , сообщавших о том, что они едят, так что, возможно, я делаю что-то не так.
Вопросы:
- Почему хост-докер ломается?
- Есть ли какой-нибудь способ предотвратить поломку хост-докера и при этом дать моему пользователю разрешение на сокет внутри докера?