@sirocco
Инженер АСУТП

Как пользоваться Portainer API?

Есть NAS на котором работают контейнеры Docker. под управлением Portainer. Есть отдельное устройство, которое мониторит работу программ, которые выполняются в контейнерах. Иногда происходят сбои и есть необходимость перезапускать контейнеры или останавливать/запускать на время. У Portainer есть API, в котором описано, как управлять контейнерами через это самое API. Но я не ITшник и не догоняю как правильно составить команду.
В веб интерфейсе портейнера получил токен:
ptr_l9+juojFH1Fh7rHDxBoQPkLBSlQf93OwbX6weB7HBhM=
Далее в справке предлагается команда:
http POST <portainer url>/api/endpoints/1/docker/containers/5fc2a93d7a3d426a1c3937436697fc5e5343cc375226f6110283200bede3b107/start \    X-API-Key:your_access-token

Ну подставил я свои данные:
http://192.168.15.1:9000/api/endpoints/1/docker/containers/019486f9b6f41c73037c2df8979a315e37e89a043b915556b93ac4f8b80eb9d4/start X-API-Key:ptr_l9+juojFH1Fh7rHDxBoQPkLBSlQf93OwbX6weB7HBhM=

А что с ними делать - не понятно. Если отправить в браузере, то вылетает "Не авторизован".
Если отправить через консоль wget или curlом, то - не правильно введена команда.
Как правильно отправить команду на запуск контейнера? Машины с контейнером и та, с которой надо отправить команду в одной локальной сети.
Управлять нужно именно с удалённой системы(не с той, на которой сами контейнеры работают).
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 1
deepblack
@deepblack
Через адресную строку браузера можно сделать только GET запрос,
у тебя же явно в документации сказано использовать POST.

Т.е. нужно использовать для отправки запроса какой либо инструмент который умеет слать POST запросы,
например:
  • postman
  • httpie
  • curl
  • fiddler
  • insomnia
  • или использовать встроенную библиотеку какого-либо языка программирования (т.е. требуется написать простую программу)


Если отправить через консоль wget или curlом, то - не правильно введена команда.


В доке Portainer эти примеры приведены с использованием httpie,
и там-же об этом есть сноска со ссылкой.
Вот его и используйте.

The following examples use httpie to execute API calls against Portainer.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы