Today

Post-installation steps | Docker

Запуск Docker от имени пользователя без прав root

Демон Docker привязывается к сокету Unix, а не к TCP-порту. По умолчанию этот сокет Unix принадлежит пользователю root, и другие пользователи могут получить к нему доступ только с помощью sudo. Демон Docker всегда работает от имени пользователя root.

Если вы не хотите начинать команду docker с sudo, создайте группу Unix под названием docker и добавьте в неё пользователей. При запуске демона Docker он создаёт сокет Unix, доступный участникам группы docker .

Предупреждение Группа docker предоставляет привилегии, эквивалентные привилегиям пользователя root . Подробнее о том, как это влияет на безопасность вашей системы, см. в разделе Уязвимость демона Docker.
Примечание:Чтобы запустить Docker без прав суперпользователя, см. Запуск демона Docker от имени пользователя без прав суперпользователя (режим без прав суперпользователя).Режим без root-доступа в настоящее время доступен в качестве экспериментальной функции.

Чтобы создать группу docker и добавить в неё пользователя:

  1. Создайте docker группу.
$ sudo groupadd docker 

2. Добавьте своего пользователя в группу docker.

$ sudo usermod -aG docker $USER

3. Выйдите из системы и войдите снова, чтобы ваша принадлежность к группе была пересмотрена.Если вы проводите тестирование на виртуальной машине, для вступления изменений в силу может потребоваться перезапуск виртуальной машины.В настольной среде Linux, такой как X Windows, полностью выйдите из системы, а затем войдите снова.В Linux вы также можете выполнить следующую команду, чтобы активировать изменения в группах:

$ newgrp docker

4. Убедитесь, что вы можете выполнять команды docker без sudo.

$ docker run hello-world

Эта команда загружает тестовый образ и запускает его в контейнере. Когда контейнер запускается, он выводит информационное сообщение и завершает работу.Если вы сначала запускали команды Docker CLI с использованием sudo перед тем, как добавить своего пользователя в группу docker, вы можете увидеть следующую ошибку, которая указывает на то, что ваш каталог ~/.docker/ был создан с неправильными разрешениями из-за команд sudo.

WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied

Чтобы решить эту проблему, удалите каталог ~/.docker/ (он будет создан автоматически, но все пользовательские настройки будут потеряны) или измените его владельца и права доступа с помощью следующих команд:

$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R 

Настройте запуск Docker при загрузке

В большинстве современных дистрибутивов Linux (RHEL, CentOS, Fedora, Ubuntu 16.04 и выше) используется systemd для управления тем, какие службы запускаются при загрузке системы. В Ubuntu 14.10 и ниже используется upstart.

systemd

$ sudo systemctl enable docker

Чтобы отключить это поведение, используйте disable вместо этого.

$ sudo systemctl disable docker

Если вам нужно добавить HTTP-прокси, указать другой каталог или раздел для файлов среды выполнения Docker или выполнить другие настройки, см. настройте параметры демона Docker в systemd.

upstart

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

$ echo manual | sudo tee /etc/init/docker.override

chkconfig

$ sudo chkconfig docker on