Почему для запуска образа докера Cassandra требуются привилегии root?

Я использую последний образ докера Cassandra. Когда я запускаю его с привилегиями root, cqlsh может подключиться к службе Cassandra, как и ожидалось:

$ sudo docker run --name mycassandra -d cassandra:latest
$ sudo docker exec -it mycassandra bash
# cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.3 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh> 

Однако, если я запускаю образ докера с обычными правами пользователя, я получаю сообщение об ошибке при использовании cqlsh:

$ docker run --name mycassandra1 -d cassandra:latest
$ docker exec -it mycassandra1 bash
# cqlsh
Connection error: ('Unable to connect to any servers', {'127.0.0.1:9042': 
ConnectionRefusedError(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: 
Connection refused")})

Я предпочитаю не запускать образ докера как sudo. Интересно, почему для образа Cassandra требуются привилегии sudo. Спасибо.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы являетесь членом группы docker, так как вы можете запускать докер без sudo. Независимо от того, запускаете ли вы его с помощью sudo или без него, это не должно иметь значения. Контейнер запускается от имени пользователя root в обоих случаях, что вы можете проверить с помощью командной строки # bash в обоих случаях.

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

Спасибо. Ты абсолютно прав. Команда работает после ожидания в течение некоторого времени.

Peter 09.05.2022 17:54

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