tgoop.com/srv_admin/2057
Last Update:
Вчера смотрел очередной вебинар Rebrain на тему деплоя проекта на базе docker в разные окружения. У меня периодически бывает реклама этой компании. Искренне рекомендую обратить на неё внимание. Хотя бы на их бесплатные вебинары. Они очень хорошего качества. Массу всего полезного оттуда вынес.
Так вот, вчера впервые узнал про полезную возможность Docker. Доступ к Docker daemon socket извне можно сделать на базе сертификатов. Не нужны пробросы портов, доступ по SSH и что-то ещё. Просто вешаем Docker на внешний интерфейс и ограничиваем доступ.
Чтобы сделать такую настройку нужно:
1️⃣ Создать корневой сертификат CA, подписать им сертификат сервера и клиента. Примерно то же самое, что настраивается для OpenVPN сервера. Делается всё через консоль с помощью openssl в несколько команд.
2️⃣ Запустить службу Docker с использованием функции tlsverify. Либо прямо через консоль запустить с нужными ключами, либо поправить systemd файл, изменив команду запуска.
3️⃣ Скопировать сертификат клиента на любую удалённую машину, где установлен Docker.
4️⃣ С помощью сертификата добавить удалённый context с авторизацией через tls. Покажу итоговую команду, так как не сразу получилось её найти (надо было сразу в консоли help смотреть):# docker context create my-context --description "some description" \
--docker "host=tcp://myserver:2376,ca=~/ca-file,cert=~/cert-file,key=~/key-file"
Теперь, выбирая context, вы можете локально управлять удалёнными службами Docker. Например так:# docker context use my-context
# docker ps
Увидите информацию с удалённого хоста.
Если у вас несколько хостов с Docker, можете подключить их все к одной машине и управлять централизованно через неё. А вообще это удобно для управления деплоем, что и было продемонстрировано на вебинаре. Этот вариант является альтернативой подключения по SSH. Получается более аккуратное решение, так как организуется доступ только к сокету Docker. SSH всё же более глобальная вещь с доступом к самому серверу, что чаще всего не нужно для управления только докером.
Всё перечисленное выше настраивается копипастом из документации - https://docs.docker.com/engine/security/protect-access/
Отдельная благодарность Василию Озерову. Вебинар вёл он. У него самая крутая подача. Он с такой скоростью фигачит команды в консоль, что у меня глаза разбегаются. Не успеваю следить. Хочется закрыть глаза, подождать, потом открыть и увидеть результат. И результат всегда есть.
Есть те, кто вчера тоже смотрели этот вебинар?
#docker #devops
BY ServerAdmin.ru

Share with your friend now:
tgoop.com/srv_admin/2057