Меню

Docker не работает без sudo

Как я могу использовать докер без sudo?

Я не использую Ubuntu 15.10 Unity Distro. Поэтому инструмент компиляции Gnome Compatibility просто не работал для меня. Поэтому я использовал метод Майкла (см. Выше). Перейдите во Все настройки -> Клавиатура -> Скриншоты.

Затем сначала отключите «Возьмите снимок экрана», «Сделайте снимок экрана с окном» и «Сделайте снимок экрана а затем перейдите к опции «Пользовательские ярлыки» и нажмите Снимите снимок , чтобы добавить новый ярлык.

. Чтобы создать скриншот для всего рабочего стола, напишите команду «shutter-f» и, чтобы взять конкретный снимок экрана, напишите команду «shutter-s».

Теперь после создания двух пользовательских ярлыков вам нужно назначить ключ для этих пользовательских ярлыков. Нажмите «Отключить» и нажмите клавишу, которую вы хотите назначить этой функции. Я рекомендую использовать « Сделайте снимок экрана окна » для полноэкранного захвата и «Shift + Print» для области захвата.

Закройте окно, а затем вы хорошо .

Аналогичным образом вы можете использовать инструмент gnome-screenshot. Просто используйте команду Disabled «для полноэкранного снимка и используйте команду gnome-screenshot -a для использования инструмента для области. Вы также можете использовать « Сделать снимок экрана с помощью команды area » для захвата определенного окна.

Я действительно использую инструмент gnome-screenshot, потому что я делаю это более быстрым и легким , Но у него меньше возможностей.

Источник

Как я могу использовать докер без sudo?

На страницах документации Docker все примеры команд показаны без sudo , например:

В Ubuntu бинарный файл называется docker.io . Это также не работает без sudo:

Как я могу настроить Docker так, чтобы мне не нужно было ставить перед каждой командой Docker префикс sudo?

Хорошая новость: новый докер (версия 19.03 (в настоящее время экспериментальный)) сможет работать без прав root, что устраняет проблемы, которые могут возникнуть при использовании пользователя root. Больше не нужно возиться с повышенными правами, root и всем, что может открыть вашу машину, когда вы этого не хотите.

Несколько предостережений в бездокном режиме Docker

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

  • Элементы управления cgroups, профили безопасности устройства, контрольные точки / восстановление, оверлейные сети и т. д. не работают в режиме без root.
  • Экспозиция портов из контейнеров в настоящее время требует ручного вспомогательного процесса socat.
  • Только дистрибутивы на основе Ubuntu поддерживают оверлейные файловые системы в режиме без root.
  • Режим Rootless в настоящее время предоставляется только для ночных сборок, которые могут быть не такими стабильными, как вы привыкли.

Начиная с докера 19.3 это устарело (и опаснее, чем нужно):

В руководстве по докеру есть что сказать об этом:

Предоставление некорневого доступа

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

Начиная с версии 0.5.3, если вы (или ваш установщик Docker) создаете группу Unix с именем docker и добавляете в нее пользователей, то демон docker сделает владение сокетом Unix доступным для чтения / записи для группы docker при запуске демона , Демон docker всегда должен запускаться как пользователь root, но если вы запускаете клиент docker как пользователь в группе docker, вам не нужно добавлять sudo ко всем командам клиента. Начиная с версии 0.9.0, вы можете указать, что группа, отличная от docker, должна иметь сокет Unix с опцией -G.

Читайте также:  После обновления ноутбука не работают клавиши

Предупреждение: группа Docker (или группа, указанная с помощью -G) является корневым эквивалентом; см. подробности Docker Daemon Attack Surface и этот пост в блоге Почему мы не позволяем некорневым пользователям запускать Docker в CentOS, Fedora или RHEL (спасибо michael-n).

В недавнем выпуске экспериментального режима без root на GitHub инженеры упоминают, что режим без root позволяет запускать dockerd от имени непривилегированного пользователя, используя user_namespaces (7), mount_namespaces (7), network_namespaces (7).

Пользователи должны запускать dockerd-rootless.sh вместо dockerd.

Поскольку режим Rootless является экспериментальным, пользователям всегда нужно запускать dockerd-rootless.sh с параметром –experimental.

Управление Docker от имени пользователя без полномочий root

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

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

Добавьте группу докеров, если она еще не существует:

Добавьте подключенного пользователя «$ USER» в группу Docker. Измените имя пользователя, чтобы оно соответствовало вашему предпочтительному пользователю, если вы не хотите использовать своего текущего пользователя:

Либо сделайте, newgrp docker либо выйдите из системы, чтобы активировать изменения в группах.

Вы можете использовать

чтобы проверить, можете ли вы запустить Docker без sudo.

Источник

🐳 Как запустить Docker от пользователя без полномочий root в Linux

Например, я хотел проверить версию Docker как обычный пользователь, используя команду:

И я получаю это сообщение об ошибке:

Но когда я запускаю ту же команду с разрешением sudo;

После поиска на странице документации Docker я понял, что демон Docker по умолчанию связывается с сокетом Unix вместо порта TCP.

Поскольку этот сокет Unix принадлежит пользователю root, демон Docker будет работать только от пользователя root.

Следовательно, обычные пользователи не могут выполнять большинство команд Docker.

Если вы хотите запустить Docker как пользователь без полномочий root в Linux, вам необходимо выполнить следующие шаги.

Я проверил это на сервере Ubuntu 18.04.

Но это также должно работать на других дистрибутивах Linux.

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

Чтобы исправить ошибку « permission denied » и использовать Docker от имени пользователя без полномочий root, создайте группу с именем «docker» с помощью следующей команды:

После добавления пользователя в группу Docker выйдите из системы и затем снова войдите в систему, чтобы изменения вступили в силу.

Либо запустите следующую команду, чтобы применить изменения к группам

Отныне обычный (не-root) пользователь может использовать Docker без разрешений sudo.

Читайте также:  Как настроить свой php ini

Позвольте мне запустить следующие команды как обычный пользователь:

/.docker / был создан с неправильными разрешениями из-за команд «sudo».

Выйдите из системы и войдите снова, чтобы все это вступило в силу.

Если проблема по-прежнему не устранена, возможно, вам придется удалить каталог

Он будет воссоздан автоматически, но вы потеряете все пользовательские настройки, если они есть.

Источник

How can I use docker without sudo?

On Docker’s documentation pages, all example commands are shown without sudo , like this one:

On Ubuntu, the binary is called docker.io . It also does not work without sudo:

How can I configure Docker so that I don’t need to prefix every Docker command with sudo?

5 Answers 5

Good news: the new docker (version 19.03 (currently experimental)) will be able to run rootless negating the problems that can occur using a root user. No more messing with elevated permissions, root and anything that might open up your machine when you did not want to.

A few Caveats to the rootless Docker mode

Docker engineers say the rootless mode cannot be considered a replacement for the complete suite of Docker engine features. Some limitation to the rootless mode include:

  • cgroups resource controls, apparmor security profiles, checkpoint/restore, overlay networks etc. do not work on rootless mode.
  • Exposing ports from containers currently requires manual socat helper process.
  • Only Ubuntu-based distros support overlay filesystems in rootless mode.
  • Rootless mode is currently only provided for nightly builds that may not be as stable as you are used to.

As of docker 19.3 this is obsolete (and more dangerous than need be):

The docker manual has this to say about it:

Giving non-root access

The docker daemon always runs as the root user, and since Docker version 0.5.2, the docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root, and so, by default, you can access it with sudo.

Starting in version 0.5.3, if you (or your Docker installer) create a Unix group called docker and add users to it, then the docker daemon will make the ownership of the Unix socket read/writable by the docker group when the daemon starts. The docker daemon must always run as the root user, but if you run the docker client as a user in the docker group then you don’t need to add sudo to all the client commands. As of 0.9.0, you can specify that a group other than docker should own the Unix socket with the -G option.

Warning: The docker group (or the group specified with -G) is root-equivalent; see Docker Daemon Attack Surface details and this blogpost on Why we don’t let non-root users run Docker in CentOS, Fedora, or RHEL (thanks michael-n).

In the recent release of the experimental rootless mode on GitHub, engineers mention rootless mode allows running dockerd as an unprivileged user, using user_namespaces(7), mount_namespaces(7), network_namespaces(7).

Читайте также:  Ubuntu remmina не работает буфер обмена

Users need to run dockerd-rootless.sh instead of dockerd.

As Rootless mode is experimental, users need to always run dockerd-rootless.sh with –experimental.

Manage Docker as a non-root user

The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can only access it using sudo. The docker daemon always runs as the root user.

If you don’t want to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.

Add the docker group if it doesn’t already exist:

Add the connected user «$USER» to the docker group. Change the user name to match your preferred user if you do not want to use your current user:

Either do a newgrp docker or log out/in to activate the changes to groups.

to check if you can run docker without sudo.

Источник

Как использовать Docker без sudo на Ubuntu

В этой статье я покажу вам, как ввести команду docker без использования команды sudo на машине Ubuntu Linux.

Если вы используете Docker для тестирования и разработки на вашем локальном компьютере, вы, вероятно, испытали это

Вероятно, вы обойдете это, используя sudo перед командой docker или зарегистрируясь как root, используя su.

Но этого не должно быть.

Можно работать как обычный пользователь, и есть два пути.

Один заключается в том, чтобы добавить пользователя в группу докеров, а другой – разрешить ему писать в сокет Unix, используемый докером.

Мы собираемся показать оба способа сделать это в новом Ubuntu 18.04 в этой статье.

1) Добавление пользователя в группу Docker

Создайте новую группу, если она не существует.

Эта команда, скорее всего, не удастся, поскольку группа, возможно, уже существует, но давайте ее запустим ее в любом случае.

Затем нам нужно добавить текущего пользователя в группу.

Если вы не хотите добавлять текущего пользователя в систему, то вместо этого вы меняете $ USER для имени пользователя этого юзера.

Обратите внимание, что пользователю должно быть разрешено использовать sudo.

Наконец, нам нужно перезагрузить оболочку, чтобы применить новые групповые настройки.

Для этого вы можете перезагрузиться, или вы можете выйти из системы и войти в систему, но оба они подходят,если вы действительно хотите что-то более тонкое вместо этого выполните эту команду:

Теперь мы готовы запустить программу тестирования докеров без sudo:

2) ACL лист

Существует еще один способ сделать это, и это списки ACL.

Чтобы войти в систему как пользователь sudoer, нам нужно запустить эту команду:

Конечно же,измените bobby нп своего фактического пользователя, которого вы хотите использовать в докере.

Теперь вы можете войти в систему как этот пользователь.

Теперь мы можем использовать докер, например, введите эту команду:

Он должен отображать контейнеры, если у вас они есть.

Если нет, по крайней мере, это не покажет вам отказ

Источник

Adblock
detector