TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #2057 7.42K
​​Вчера смотрел очередной вебинар 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
  • 👍 77
  • 👎 5
More from @srv_admin
  1. Sep 24, 2026Траблшутинг - мастхэв компетенция для инженера В Rebrain траблшутинги проводят уже несколь…
  2. Sep 23, 2026Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает,…
  3. Sep 23, 2026Контейнеры в одном инструменте, виртуалки — в другом, частное облако — вообще отдельная ис…
  4. Sep 23, 2026Расскажу тем, кто не знает, и напомню тем, кто забыл, как я. Не надо в Proxmox в LXC конте…
  5. Sep 22, 2026Недавно случайно заметил любопытную информацию на тему Proxmox VE и новой функциональности…
  6. Sep 22, 2026✔️ Сети для всех — сообщество для тех, кто развивается в сетевом и системном администриров…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →