Не удается свернуть рой докеров с удаленного хоста

Я пытаюсь проверить, как взаимодействовать с роем докеров, используя API докеров. У меня есть экземпляр ec2 в AWS с работающим докером. Мне нужно подключиться к нему с моей локальной машины с помощью curl, затем инициализировать рой и получить токены присоединения после того, как использовать его для подключения 2 других экземпляров ec2 к рою. Мне нужно сделать все это, используя только завиток.

Я создал рой вручную, подключившись к экземпляру по ssh и запустив:

docker swarm init --advertise-addr 10.0.0.2

а затем я попытался запустить эту команду curl:

curl 10.0.0.2:2377/swarm
curl 10.0.0.2:2377/info

и я получаю пустую строку. Если я попытаюсь изменить порт на 2376, я получаю сообщение об отказе в подключении.

Что мне не хватает?

запустив netstat -tuplen, обнаружил следующий результат:

введите здесь описание изображения


person tkyass    schedule 06.07.2017    source источник
comment
Добавьте -i к curl и покажите его. curl -i .......   -  person Robert    schedule 07.07.2017
comment
тот же результат ничего не возвращается обратно   -  person tkyass    schedule 07.07.2017
comment
Кажется очевидным вопрос, но какой сервис вы используете в Swarm? Вы выставляли порты при запуске?   -  person Mano Marks    schedule 07.07.2017
comment
@ManoMarks спасибо за ваш комментарий! У меня сейчас нет запущенных служб, и мне нужно подключиться к самому диспетчеру роя, а не к службам. поправьте, если я ошибаюсь, но я не думаю, что порт менеджера нуждается в дополнительной настройке, чтобы его можно было открыть, верно?   -  person tkyass    schedule 07.07.2017
comment
Извините, я пропустил часть, где вы написали API. Вы пытаетесь использовать удаленный API. Поэтому по умолчанию требуется подключение с использованием https, для которого требуется сертификат. Дополнительная информация: https://docs.docker.com/engine/security/https/ вы начали? в безопасном режиме?   -  person Mano Marks    schedule 07.07.2017
comment
Могу ли я использовать имя пользователя/пароль для аутентификации вместо сертификатов?   -  person tkyass    schedule 07.07.2017
comment
Возможно, вы сможете сделать это с помощью плагина авторизации. Но там есть работа, она предназначена для обеспечения безопасности по умолчанию. Вы можете отключить аутентификацию https. Для получения дополнительной информации о плагинах аутентификации, вот недавняя запись в блоге от Docker Captain: blog.loof.fr/2017/07/   -  person Mano Marks    schedule 07.07.2017


Ответы (1)


Чтобы получить ответ из комментариев: по умолчанию доступ к удаленному API должен осуществляться с помощью https://docs.docker.com/engine/security/https/. Вы можете отключить это, но это не рекомендуется для рабочих приложений. Может быть способ написать подключаемый модуль авторизации, который разрешит доступ к другим формам аутентификации.

person Mano Marks    schedule 07.07.2017