В декабре 2017 года компания Docker выпустила новую версию Docker Engine 1712, предлагая множество новых возможностей и улучшений для разработчиков и системных администраторов. Docker Engine является основой Docker-экосистемы, позволяющей создавать, развертывать и управлять контейнеризованными приложениями. В этой статье мы рассмотрим ключевые особенности нового выпуска и как они могут быть полезны в разработке и эксплуатации контейнеризованных приложений.
Одной из ключевых особенностей Docker Engine 1712 является поддержка многоуровневых сетей. Это означает, что теперь разработчики могут создавать сети контейнеров на нескольких уровнях, что дает больше гибкости и возможностей для настройки сетевого взаимодействия между контейнерами. Например, можно легко создавать сети на уровнях сервиса, приложения, организации и масштабирования, что помогает упростить комплексные сценарии сетевой инфраструктуры.
В новом выпуске также добавлена поддержка наличия нескольких сетевых интерфейсов в контейнере. Это позволяет контейнеру иметь доступ к различным сетям, как внутри, так и вне хоста, что может быть полезно в различных сценариях сетевой связи. Использование нескольких интерфейсов позволяет контейнерам работать с разными сетевыми топологиями и различными сетевыми протоколами, добавляя больше гибкости в развертывании и управлении приложениями.
Одной из ключевых особенностей нового выпуска Docker Engine 1712 является встроенная поддержка управления трафиком с помощью Ingress. Это позволяет внутренним сервисам обращаться к внешним без необходимости открытия портов или настройки маршрутизации на хосте. Ingress позволяет определять правила, которые меняют путь и адрес, используемые клиентами для доступа к внутренним сервисам, делая их более гибкими и безопасными.
Кроме того, Docker Engine 1712 включает в себя новые инструменты для отладки и мониторинга контейнеров, такие как exec-attach и stats API. Exec-attach позволяет подключить терминал к контейнеру и выполнить в нем команды для отладки или анализа. Stats API предоставляет информацию о ресурсах, используемых контейнерами, таких как использование ЦП, память и сетевой трафик. Эти инструменты помогают упростить процесс отладки и мониторинга контейнеризованных приложений, улучшая взаимодействие с контейнерами и повышая эффективность разработки и эксплуатации.
- Новый выпуск Docker Engine 17.12: основные функции и возможности
- Улучшения безопасности
- Встроенная поддержка протокола TLS 1.3
- Усиленная защита от атак внедрения в docker.sock
- Улучшенная стабильность и масштабируемость
- Многопоточная синхронизация при удалении контейнеров
- Обзор новых возможностей Docker Engine 17.12
- Вопрос-ответ:
- Какие основные новые функции включает в себя Docker Engine 17.12?
- Что такое Graceful Shutdown и для чего она нужна?
- Какие улучшения связанные с кластеризацией Swarm Mode были добавлены в Docker Engine 17.12?
- Насколько улучшился графический интерфейс команды docker service ls в Docker Engine 17.12?
- Видео:
Новый выпуск Docker Engine 17.12: основные функции и возможности
Docker Engine – это открытая платформа для автоматизации разработки, доставки и эксплуатации приложений при помощи контейнеризации. Версия 17.12 была выпущена с целью предложить улучшенные функции и возможности для пользователей.
Вот некоторые из основных функций и возможностей, предоставляемых в Docker Engine 17.12:
- Multi-stage сборка: Мulti-stage сборка предлагает более эффективный способ создания образов Docker, позволяя пользователям оптимизировать размер образов путем создания нескольких этапов сборки. Теперь вам не нужно держать в контейнере лишние инструменты и зависимости после завершения сборки.
- Service secrets: Механизм секретов в Docker Engine 17.12 позволяет безопасно хранить и передавать конфиденциальные данные, такие как пароли, ключи API и другую чувствительную информацию в сервисах Docker.
- Stack deploy: Stack deploy – новая команда в Docker Engine 17.12, которая облегчает развертывание стека сервисов на нескольких узлах Docker Swarm. Это упрощает управление и масштабирование приложений в кластере.
- GCE support: Версия 17.12 также добавила поддержку Google Compute Engine (GCE), позволяя пользователям легко развернуть контейнеры Docker на платформе GCE.
Это лишь некоторые из главных функций и возможностей, предоставляемых новым выпуском Docker Engine 17.12. Версия 17.12 представляет собой значительное улучшение функциональности Docker и помогает пользователям более эффективно управлять и развертывать контейнеры.
Если вы являетесь пользователем Docker, рекомендуется обновиться до последней версии Docker Engine 17.12, чтобы воспользоваться всеми новыми функциями и возможностями.
Улучшения безопасности
Новый выпуск Docker Engine 17.12 включает в себя ряд улучшений безопасности, которые обеспечивают более защищенное окружение для запуска контейнеров. Вот некоторые из наиболее значимых улучшений:
-
Встроенная поддержка технологии секретного хранилища: Docker Engine теперь поддерживает интеграцию с популярными инструментами секретного хранения, такими как HashiCorp Vault и Docker Secrets. Это позволяет безопасно хранить и использовать конфиденциальные данные, такие как пароли, ключи и сертификаты, внутри контейнера.
-
Улучшенное управление привилегиями: Docker Engine теперь позволяет более гибко управлять привилегиями контейнеров и пользователей внутри них. Это позволяет создавать более безопасные окружения, где контейнеры имеют только необходимые привилегии и ограниченный доступ к хостовой системе.
-
Аудит безопасности: Новый выпуск Docker Engine предоставляет возможность аудита безопасности контейнеров. С помощью этой функции можно вести журнал событий и анализировать действия контейнеров в целях выявления потенциальных уязвимостей или нарушений безопасности.
-
Повышенная изоляция контейнеров: Docker Engine 17.12 предоставляет дополнительные механизмы для изоляции контейнеров. Это включает в себя поддержку функций ядра Linux, таких как SELinux и AppArmor, а также возможность использовать аппаратную виртуализацию для повышения безопасности контейнеров.
В целом, улучшения безопасности в Docker Engine 17.12 делают его еще более надежным инструментом для разв depалия собственных контейнерных решений. Эти улучшения позволяют создавать более безопasnые и защищенные окружения, минимизируя риски взлома и утечки данных.
Встроенная поддержка протокола TLS 1.3
В новом выпуске Docker Engine 17.12 была добавлена встроенная поддержка протокола TLS 1.3. Это протокол безопасности, который шифрует данные, передаваемые между клиентом и сервером, обеспечивая высокую степень защиты.
TLS 1.3 – это последняя версия протокола Transport Layer Security, разработанная для замены предыдущей версии TLS 1.2. Она предлагает улучшенные алгоритмы шифрования и аутентификации, ускоряет процесс установления и разрыва защищенного соединения, а также повышает безопасность передачи данных.
Защита соединений с использованием протокола TLS 1.3 стала доступна благодаря обновлению Docker Engine. Теперь вы можете установить защищенное соединение между контейнерами, а также между контейнерами и внешними сервисами.
При создании или запуске контейнера вы можете указать параметры для настройки защищенного соединения. Например, вы можете указать путь к сертификатам и ключам, использовать определенные алгоритмы шифрования, а также задать параметры проверки подлинности.
Встроенная поддержка протокола TLS 1.3 позволяет улучшить безопасность вашего приложения и защитить передаваемые данные от несанкционированного доступа или подмены.
Усиленная защита от атак внедрения в docker.sock
Одна из основных особенностей нового выпуска Docker Engine 1712 – это усиленная защита от атак внедрения в docker.sock. Docker.sock – это сокет, который используется для взаимодействия с демоном Docker. Он предоставляет доступ к API Docker и управляет контейнерами и образами.
В предыдущих версиях Docker Engine docker.sock был настроен с недостаточной защитой, что делало его уязвимым для атак, таких как внедрение контейнера внутрь docker.sock или выполнение команд через API.
В новом выпуске Docker Engine 1712 были внедрены ряд мер безопасности, которые значительно усилили защиту docker.sock:
- Проверка прав доступа: Теперь Docker Engine 1712 предоставляет возможность настроить права доступа к docker.sock файла. Это позволяет контролировать, какие пользователи и группы имеют доступ к API Docker. Таким образом, можно предотвратить неправомерный доступ и атаки на docker.sock.
- Разделение привилегий: Docker Engine 1712 теперь позволяет разделять привилегии между клиентами, которые подключаются к docker.sock. Различным клиентам могут быть назначены разные уровни доступа, что обеспечивает более гранулированный контроль доступа и снижает риск атаки.
- Мониторинг и аудит: Новый выпуск Docker Engine обеспечивает возможность мониторинга и аудита действий пользователей, осуществляемых через API Docker. Это позволяет выявить подозрительные действия и атаки на ранней стадии и принять необходимые меры для повышения безопасности.
Усиленная защита docker.sock в новом выпуске Docker Engine 1712 позволяет повысить безопасность взаимодействия с демоном Docker и предотвратить возможные атаки на вашу инфраструктуру. Рекомендуется обновить Docker Engine до последней версии и настроить соответствующие параметры безопасности, чтобы обеспечить защиту от уязвимостей и атак.
Улучшенная стабильность и масштабируемость
В новом выпуске Docker Engine 17.12 значительное внимание уделено улучшению стабильности и масштабируемости. Были добавлены новые функции и усовершенствования, которые помогут улучшить производительность и надежность работы с контейнерами.
Улучшения стабильности:
- Внедрение нового механизма обработки сетевых ошибок, который позволяет автоматически восстанавливать работу контейнеров в случае возникновения сетевых проблем. Это значительно снижает возможность простоев и проблем с доступностью сервисов.
- Улучшен механизм обнаружения и восстановления ошибок в работе контейнеров, что позволяет автоматически решать проблемы с недоступностью контейнеров без необходимости вмешательства администратора.
Улучшения масштабируемости:
- Добавлена поддержка управления кластерами из нескольких серверов, что позволяет создавать и управлять масштабируемыми системами контейнеров.
- Внедрена поддержка управления ресурсами контейнеров, что позволяет более точно настраивать и контролировать использование ресурсов в кластере контейнеров.
- Улучшен механизм управления сетевыми ресурсами, что позволяет более гибко настраивать сетевые соединения между контейнерами и обеспечивать оптимальное распределение трафика.
Все эти улучшения обеспечивают более стабильную и надежную работу с контейнерами, что помогает упростить развертывание и управление приложениями в контейнерах и обеспечить бесперебойную работу сервисов.
Многопоточная синхронизация при удалении контейнеров
В новом выпуске Docker Engine 17.12 была добавлена функциональность, которая позволяет осуществлять удаление контейнеров параллельно. Это означает, что теперь можно одновременно удалять несколько контейнеров, что приводит к более эффективному использованию ресурсов и сокращению времени выполнения операций.
До появления многопоточной синхронизации удаление контейнеров происходило последовательно, поэтому при большом количестве контейнеров это могло занимать значительное время. Теперь же, благодаря новому механизму, можно указать количество потоков, которые будут одновременно удалять контейнеры. Это может быть особенно полезно при работе с большими кластерами Docker или при удалении нескольких контейнеров одновременно.
Для указания количества потоков существует специальный флаг –docker-kill-max, который позволяет задать количество потоков, которые будут использоваться при удалении контейнеров. Например, команда:
sudo docker container prune --docker-kill-max 5
удалит контейнеры, используя параллельно до 5 потоков. Если не указывать этот флаг, по умолчанию будет использоваться число потоков, равное количеству доступных процессоров.
Многопоточная синхронизация при удалении контейнеров значительно ускоряет работу Docker Engine и позволяет более эффективно использовать ресурсы системы. Это важное улучшение, которое будет полезно как для разработчиков, так и для системных администраторов, работающих с Docker.
Обзор новых возможностей Docker Engine 17.12
Docker Engine 17.12 – это последний выпуск платформы для контейнеризации Docker, который предлагает ряд новых интересных функций и улучшений.
Вот основные новые возможности, доступные в Docker Engine 17.12:
- Многоуровневые конструкции Dockerfile: В новой версии Docker Engine добавлена поддержка многоуровневых конструкций в Dockerfile. Это позволяет сократить размер и сложность образа, разделяя его на несколько этапов с разными зависимостями и убирая неиспользуемые компоненты.
- Улучшенная совместимость с Kubernetes: Docker Engine 17.12 предлагает улучшенную совместимость с Kubernetes, что облегчает развертывание приложений в кластерах Kubernetes и обеспечивает более гибкие возможности межсетевого взаимодействия.
- Внесение изменений в работу сети: Было внесено ряд изменений в работу сети, включая улучшение производительности при использовании межсетевых интерфейсов, обрезку MTU пакетов и улучшение производительности сети при использовании IPv6.
- Поддержка многостадийного сборки: Docker Engine 17.12 предлагает поддержку многостадийного сборки, что позволяет разработчикам легче создавать оптимизированные образы Docker, включая только необходимые компоненты.
- Обновление Docker Compose: В этом выпуске было обновлено Docker Compose, инструмент для создания и управления многоконтейнерными приложениями Docker. Были внесены улучшения в производительность и устранены некоторые проблемы с прежними версиями.
Основная цель Docker Engine 17.12 – улучшить опыт разработки и управления контейнерами, предоставив разработчикам новые возможности и улучшения производительности. Обновление позволяет создавать более эффективные и гибкие контейнеры, упрощает процесс развертывания и управления приложениями Docker.
Выводя аналогии с автомобилем, можно сказать, что Docker Engine 17.12 – это своего рода “тюнинг” для контейнеров Docker, позволяющий получить больше от существующих инфраструктурных решений и улучшить процесс разработки и доставки приложений.
Вопрос-ответ:
Какие основные новые функции включает в себя Docker Engine 17.12?
В Docker Engine 17.12 добавлено несколько новых функций, включая поддержку сигнала SIGQUIT для Graceful Shutdown, улучшенную поддержку кластеризации Swarm Mode, улучшенный графический интерфейс команды docker service ls и другие.
Что такое Graceful Shutdown и для чего она нужна?
Graceful Shutdown – это процесс остановки контейнера с учетом его текущего состояния и завершение всех задач, выполняемых внутри него, перед его полным завершением. Она позволяет контейнерам корректно завершить выполнение задач и освободить ресурсы, а также сохранить данные перед закрытием.
Какие улучшения связанные с кластеризацией Swarm Mode были добавлены в Docker Engine 17.12?
В Docker Engine 17.12 улучшена поддержка кластеризации Swarm Mode, включая возможность указания количества реплик сервисов, добавление новых флагов команды docker service create, поддержку определения стратегии развертывания и режима развертывания при создании сервисов и другие улучшения.
Насколько улучшился графический интерфейс команды docker service ls в Docker Engine 17.12?
В Docker Engine 17.12 улучшился графический интерфейс команды docker service ls. Теперь он показывает более полную информацию о сервисах, включая количество запущенных реплик и их состояние. Также добавлены новые флаги для фильтрации и сортировки вывода.