Docker без sudo: 3 команды

DockerLinux

После установки Docker каждая команда требует sudo. Ошибка permission denied while trying to connect to the Docker daemon socket лечится добавлением пользователя в группу docker.

Решение

sudo groupadd docker            # если группы ещё нет
sudo usermod -aG docker $USER   # добавить себя в группу
newgrp docker                   # применить без перелогина

Вместо newgrp можно просто выйти и зайти снова по SSH.

Проверка

groups                          # в списке должно быть "docker"
docker ps                       # работает без sudo
docker run hello-world          # тестовый контейнер

Если не сработало

sudo systemctl restart docker   # перезапустить демон
ls -l /var/run/docker.sock      # должно быть root:docker и права srw-rw----

Если права другие:

sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock

Важно про безопасность

Пользователь в группе docker фактически получает root: можно смонтировать / контейнера через -v /:/host. Давай доступ только доверенным аккаунтам.