
Rust и Docker
MaksUnweb 9 минут назад Rust и Docker Средний 5 мин 164 Rust * DevOps * Туториал ВведениеПривет, Хабр! Сегодня я хочу осветить тему работы с системой контейнеризации Docker прямиком из программы на Rust. Эта статья...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. MaksUnweb 9 минут назад Rust и Docker Средний 5 мин 164 Rust * DevOps * Туториал ВведениеПривет, Хабр! Сегодня я хочу осветить тему работы с системой контейнеризации Docker прямиком из программы на Rust. Эта статья будет полезна тем, кто хочет разрабатывать различные программы для автоматизации рутинных действий Docker.
Важное предупреждение! В этой статье продемонстрирован пример работы с Docker контейнером исключительно в контексте получения из него логов. Здесь нет полноценного регламента и плана работы с Docker, в конечном счёте только вам выбирать удобную реализацию для своих целей.
Технические детали
РентабельностьНе секрет, что Docker стал неотъемлемой частью современного IT-мира. Существует огромное количество инструментов, благодаря которым можно проводить контроль над контейнерами. Не редко появляется необходимость автоматизировать рутинный процесс.
Для решения таких задач отлично подходит язык программирования Rust с крейтом Bollard. Подключение к DockerСамой важной частью статьи является подключение к Docker. Для работы с Docker существует крейт bollard.
Крейт предоставляет широкий спектр возможностей, начиная от подключения к контейнеру разными способами (о которых поговорим чуть позже), заканчивая различными возможностями управления. Перечень основных методов подключения:Docker::connect_with_defaults() - Основной метод подключения, который в случае Unix использует сокет, а в случае Windows именованный канал named pipe или HTTP. Методы подключения здесь можно определить с помощью переменной DOCKER_HOST.
Отраслевые последствия
Docker::connect_with_socket_defaults() - Прямое подключение к стандартному Unix-сокету (/var/run/docker. sock) или Windows каналу. Docker::connect_with_http_defaults() - Подключение с использованием незащищённого протокола HTTP, как правило, использует порт 2375.
Docker::connect_with_ssl_defaults() - Подключение с использованием защищённого протокола HTTPS, использует сертификаты из переменной окружения DOCKER_CERT_PATH, как правило, использует порт 2376. Docker::connect_with_ssh_defaults() - Подключение через SSH-тунель. Docker::connect_with_podman_defaults() - Подключение к сокету Podman с автоматическим определением (rotless/system).
Выбор подключения всегда остаётся за вами и зависит от вашей архитектуры, но по умолчанию рекомендуется использовать Docker::connect_with_defaults(). С подключением должно быть понятно, а для основных операций над контейнерами рекомендую обратить внимание на структуру Docker, так как именно с ней и придётся взаимодействовать, там множество различных методов, суть которых переписывать сюда не вижу смысла, но должен перечислить основные возможности:Работа с конфигурационными файлами контейнеров (к примеру nginx. conf), а именно их создание, редактирование, удаление и обновление.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





