Невозможно вызвать проект Docker - PullRequest
0 голосов
/ 01 ноября 2018

Я следую этому руководству по Docker , которое создает простой управляемый Docker сайт Django, и когда я пытаюсь запустить docker-compose up для запуска моего проекта Docker, я получаю неоднозначную ошибку:

ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

Ошибка предполагает, что демон Docker не работает, но service docker status показывает, что демон Docker работает.

Если вместо этого я запускаю sudo docker-compose up, то это происходит успешно, но он загружает многие мои локальные файлы разработки пользователю root, что достаточно легко исправить, но раздражает.

Почему Docker требует root-права только для запуска локального сервера разработки Django? Как мне это исправить?

Мои версии:

Docker version 18.06.1-ce, build e68fc7a
docker-compose version 1.11.1, build 7c5d5e4
Ubuntu 16.04.5 LTS

1 Ответ

0 голосов
/ 01 ноября 2018

Если вы вообще можете запустить какую-либо команду Docker, вы можете легко получить root-права на хост:

docker run --rm -v /:/host busybox \
  cat /host/etc/shadow

Кроме того, контейнеры Docker часто запускаются с правами root в пределах своего собственного пространства контейнеров, что означает, что любые части файловой системы хоста, которые вы выбираете для показа в них, могут вносить произвольные изменения в качестве произвольных идентификаторов пользователя. Вы можете использовать опцию docker run -u, чтобы выбрать другой идентификатор пользователя, но вы можете выбрать любой идентификатор пользователя, даже тот, который принадлежит другому пользователю в общей системе.

Очень разумно использовать sudo как способ получения привилегий root для вещей, которые в этом нуждаются, и это типичная стандартная конфигурация Docker.

В конце дня единственными реальными воротами на этом пути являются разрешения Unix для файла /var/run/docker.sock. Это часто режим 0660, принадлежащий выделенной группе docker. Если вы не возражаете против того, чтобы ваш обычный пользователь мог читать и записывать произвольные файлы хоста вообще без какого-либо контроля, вы можете добавить себя в эту группу. Это часто подходит для чего-то вроде ноутбука разработчика; но что-то вроде производственной системы заслуживает некоторого реального рассмотрения ее последствий для безопасности.

...