Можно ли попасть в контейнер докера без корневого разрешения хоста, когда докеру требуется sudo для run?

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

Но если команду docker нужно запускать с помощью sudo , например sudo docker exec -it CONTAINER / bin / bash , это хороший способ скрыть информацию, например, исходный код в контейнере?

Мой вопрос, если быть более конкретным, если sudo необходимо для запуска докера , можно ли увидеть, что внутри контейнера, или даже получить к нему доступ без прав root?

0
задан 30 August 2021 в 05:15

1 ответ

Нет необходимости запускать Docker от имени root.

В Docker есть режим "rootless", который позволяет запускать контейнеры Docker в пространстве пользователя. Однако у этого режима работы есть некоторые ограничения, перечисленные в документации по ссылке. В этом режиме пользователь имеет полный доступ к контейнерам и их содержимому.

Однако лично у меня нет опыта запуска Docker в режиме rootless.

Если вы хотите запустить Docker как общесистемную службу, то для этого требуется доступ root или членство в группе docker. В этом режиме вы можете выполнить следующую команду (как член группы docker - на примере nginx, и при условии, что bash находится в контейнере):

docker exec -it nginx /bin/bash

Вы попадаете в терминал контейнера (как root):

root@e209bdb1fe51:/#

Таким образом, даже если вы не являетесь root на локальной машине (но являетесь членом группы docker), вы будете root внутри контейнера.

1
ответ дан 4 September 2021 в 09:27

Другие вопросы по тегам:

Похожие вопросы: