🐳 Вход в контейнер с правами Root без Sudo или пароля |

🐳 Вход в контейнер с правами Root без Sudo или пароля

Обзоры

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

🐳 Почему процессы в контейнерах Docker не должны запускаться от имени Root

Это намного проще, чем можно было бы ожидать, и не требует использования sudo или знания/установки пароля root!

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

Тогда вы сможете войти в контейнер с правами root, даже если в Dockerfile задан USER someone:

Вот как это сделать с помощью Docker Compose:

docker-compose exec -u root [SERVICE] bash

Вот как это сделать с помощью Docker:

  $ docker container exec -it -u root [CONTAINER] bash

Это должно работать на большинстве образов на базе Linux.

Технически использование -u 0 тоже работает, поскольку в Linux-системах идентификатор пользователя 0 часто ассоциируется с пользователем root.

На практике я предпочитаю использовать root вместо 0, поскольку это ещё не давало сбоев ни на одном Docker-образе на базе Debian, и я делаю это только в разработке для одноразовых отладочных сессий.

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

см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий