Выпуск Docker Engine 17.10: новые возможности и функции

Новая версия Docker Engine 17.10 предлагает множество улучшений и новых возможностей для разработчиков и системных администраторов. В этой статье мы рассмотрим некоторые из них, которые сделают ваш опыт работы с Docker еще более эффективным и удобным.
Одним из главных изменений в Docker Engine 17.10 является введение нового формата дайджеста образа, который позволяет более эффективно проверять целостность и обновлять образы. Теперь вы можете использовать команду docker pull с опцией --digest для явного указания желаемого дайджеста образа.
Другое значительное улучшение в новой версии Docker Engine - это поддержка раздельной установки слоев образа. Теперь вы можете использовать команды docker save и docker load для сохранения и загрузки отдельных слоев образа, что значительно снижает время и объем необходимой для этих операций памяти и дискового пространства.
Новая версия Docker Engine 17.10 также предоставляет улучшения производительности, в том числе оптимизацию виртуальных сетевых интерфейсов и поддержку более высоких скоростей передачи данных. Кроме того, добавлена поддержка выборочного кэширования при сборке образов, что уменьшает использование ресурсов и ускоряет процесс развертывания контейнеров.
Повышение производительности
В выпуске Docker Engine 17.10 было сделано несколько важных улучшений, направленных на повышение производительности. Эти изменения позволяют более эффективно использовать ресурсы системы и уменьшить нагрузку на сервер.
Одно из главных улучшений в Docker Engine 17.10 - это введение мульти-стадийного построения образов. Теперь вы можете создавать образы, которые состоят из нескольких этапов, каждый из которых выполняется в своем контейнере. Это позволяет уменьшить размер конечного образа, так как в него попадают только необходимые зависимости, а также ускоряет процесс сборки образов.
Другим улучшением, повышающим производительность, является введение кеширования слоев при сборке образов. Теперь Docker Engine может автоматически кешировать уже собранные слои образа, если их содержимое не изменилось. Это позволяет значительно ускорить процесс сборки и развертывания контейнеров.
Еще одним улучшением, повышающим производительность, является оптимизация работы сетей Docker. Теперь Docker Engine может использовать сетевые пространства имен правильным образом, что позволяет уменьшить нагрузку на сервер и ускорить передачу данных между контейнерами.
Также были внесены некоторые улучшения производительности, касающиеся работы с томами Docker. Теперь Docker Engine более эффективно управляет операциями чтения и записи на диске, что позволяет уменьшить нагрузку на файловую систему и повысить производительность контейнеров.
В целом, внесенные в Docker Engine 17.10 изменения позволяют значительно повысить производительность работы с контейнерами. Они уменьшают время сборки и развертывания образов, а также оптимизируют использование ресурсов системы. Это делает Docker Engine 17.10 идеальным выбором длительных и высоконагруженных рабочих нагрузок.
Увеличение скорости запуска контейнеров
В новой версии Docker Engine 17.10 было сделано множество улучшений, направленных на ускорение процесса запуска контейнеров. Это стало возможным благодаря следующим изменениям:
-
Улучшенный механизм сборки образов. Теперь Docker Engine более эффективно проводит сборку образов, оптимизируя этот процесс и сокращая время, необходимое для его выполнения. Это позволяет существенно увеличить скорость запуска контейнеров, особенно при работе с большими и сложными проектами.
-
Оптимизация работы с сетью. Docker Engine 17.10 предоставляет более эффективные механизмы работы с сетевыми подключениями, что также способствует ускорению запуска контейнеров. Теперь контейнеры могут быстрее и стабильнее подключаться к внешним сетям, что особенно важно при работе с приложениями, требующими интенсивного обмена данными по сети.
-
Улучшенная работа с ресурсами хоста. В новой версии Docker Engine было проделано большое количество работы по улучшению механизмов управления ресурсами хоста. Теперь контейнеры более эффективно используют выделенные им ресурсы, что ведет к увеличению скорости их запуска.
В результате этих улучшений Docker Engine 17.10 значительно увеличил скорость запуска контейнеров, позволяя сократить время, необходимое для развертывания приложения, и улучшить общую производительность системы.
Улучшение масштабируемости
Данное обновление Docker Engine 17.10 предоставляет ряд новых функций для улучшения масштабируемости вашего приложения. Вот некоторые из них:
- Централизованное управление: Благодаря новому инструменту управления кластерами Docker 17.10, вы можете легко масштабировать и управлять вашими контейнерами в кластере. Это позволяет легко распределять нагрузку и автоматически восстанавливать контейнеры в случае отказа.
- Встроенная поддержка Kubernetes: Docker Engine 17.10 включает встроенную поддержку Kubernetes, популярной платформы управления контейнерами. Вы можете использовать силу Kubernetes для управления и развертывания ваших контейнеризованных приложений на серверах Docker.
- Горизонтальное масштабирование: Масштабируйте ваше приложение в горизонтальном масштабе, добавляя или удаляя контейнеры в зависимости от нагрузки. Docker Engine 17.10 предоставляет легкий способ управления количеством контейнеров и распределения нагрузки между ними.
- Управление ресурсами: Вы можете определить ресурсы, которые контейнеры должны использовать, чтобы гарантировать стабильную производительность. Docker Engine 17.10 позволяет установить ограничения на использование ЦП, памяти и сетевых ресурсов каждым контейнером.
Все эти улучшения в Docker Engine 17.10 позволяют эффективно масштабировать ваше приложение, обеспечивая высокую производительность и надежность.
Добавление поддержки swarm-режима
В выпуске Docker Engine 17.10 была добавлена функциональность поддержки swarm-режима. Swarm-режим позволяет создавать и управлять кластером Docker-хостов, обеспечивая отказоустойчивость и масштабируемость приложений.
Для работы в swarm-режиме в Docker Engine были введены новые команды:
- docker swarm init - инициирует создание нового swarm-кластера на текущем хосте.
- docker swarm join - присоединяет Docker-хост к существующему swarm-кластеру.
- docker swarm leave - отключает Docker-хост от swarm-кластера.
- docker swarm update - обновляет параметры конфигурации swarm-кластера.
Swarm-кластер поддерживает несколько режимов работы, таких как развертывание сервисов, управление стеками (stacks) и секретами, масштабирование сервисов и оркестрация задач.
Кластер Docker Swarm обеспечивает резервное копирование и автоматическое восстановление состояния развернутых сервисов при отказе одного или нескольких хостов в кластере.
Применение swarm-режима в Docker Engine позволяет разработчикам и администраторам легко создавать и управлять масштабируемыми и надежными приложениями в распределенной среде.
Оптимизация использования ресурсов
В новой версии Docker Engine 17.10 были внесены изменения, направленные на оптимизацию использования ресурсов. Это позволяет улучшить производительность работы контейнеров и оптимально распределить нагрузку на систему.
Одним из ключевых нововведений является встраивание технологии swarm mode в сам движок Docker. Теперь все функции управления контейнерами в распределенной среде доступны из командной строки без необходимости установки дополнительных пакетов.
Интеграция swarm mode в Docker Engine позволяет легко создавать и масштабировать сервисы, работающие на нескольких узлах. Это позволяет более эффективно использовать вычислительные мощности и ресурсы хостовой системы.
Также были выполнены оптимизации в работе daemon-а, отвечающего за управление контейнерами. Были устранены проблемы с потреблением памяти и процессорного времени, что позволило увеличить производительность и реагирование системы при работе с контейнерами.
Дополнительные оптимизации коснулись также процессов запуска и остановки контейнеров. Изменения позволили сократить время, необходимое для этих операций и освободить ресурсы хостовой системы.
В целом, оптимизация использования ресурсов в Docker Engine 17.10 значительно повысила эффективность работы с контейнерами. Это обеспечивает быструю и стабильную работу системы при развертывании и масштабировании приложений в контейнерах.
Новые функциональные возможности
- Введение системы событий для отслеживания изменений и выполнения действий;
- Реализация поддержки многоуровневых сетей;
- Добавление возможности управления ресурсами и ограничениями контейнеров;
- Внедрение функции сравнения образов для определения различий;
- Добавление поддержки установки лимитов на использование ресурсов;
- Включение функционала для работы с очередями задач;
- Добавление функции автоматической перезагрузки контейнеров при их падении;
- Улучшение механизма проверки наличия образов и контейнеров перед их созданием;
- Усовершенствования в работе с сетевыми драйверами, в том числе добавление новых драйверов;
- Новый функционал для привязки портов и маршрутизации трафика;
- Создание возможности использования сетевых псевдонимов;
Вышеперечисленные новые функциональные возможности позволяют расширить возможности использования Docker Engine и обеспечить более гибкую и эффективную работу с контейнеризацией приложений.
Встроенная поддержка Kubernetes
В выпуске Docker Engine 17.10 была представлена встроенная поддержка Kubernetes, одной из самых популярных платформ для оркестрации контейнеров. Теперь Docker можно использовать не только для запуска контейнеров с помощью своего собственного менеджера контейнеров, но и для управления контейнерами с использованием Kubernetes.
Встроенная поддержка Kubernetes позволяет разработчикам и администраторам контейнерных приложений преимущественно использовать единый набор инструментов и организовать работу с контейнерами более удобным и гибким способом. Теперь можно легко масштабировать приложения, управлять состоянием, автоматизировать развертывание и обновление, а также мониторить и отлаживать контейнеры, используя привычные для Kubernetes средства и интерфейс.
Встроенная поддержка Kubernetes в Docker Engine 17.10 позволяет использовать не только самую свежую версию Kubernetes, доступную на момент релиза, но и интегрироваться с последующими версиями и функциями Kubernetes без необходимости обновления Docker Engine. Это обеспечивает более плавный и гибкий процесс интеграции и развития контейнерных приложений.
Встроенная поддержка Kubernetes в Docker Engine 17.10 также является частью стратегии Docker в области оркестрации контейнеров, с целью предоставить пользователям единое решение, объединяющее лучшие возможности Docker и Kubernetes.
Возможность запуска Kubernetes-кластера внутри Docker
В выпуске Docker Engine 17.10 появилась новая возможность - запуск Kubernetes-кластера внутри Docker. Docker Engine теперь может выступать в роли управляющего узла (control plane) Kubernetes, позволяя вам создавать и управлять кластером прямо из Docker.
Данная функциональность позволяет легко настроить и развернуть Kubernetes-кластер на хост-машине без необходимости установки и настройки Kubernetes отдельно. Кластер можно создать с использованием простой команды, что упрощает разработку и тестирование Kubernetes-приложений.
При использовании Docker в качестве управляющего узла Kubernetes, Docker направляет запросы к API-серверу Kubernetes, и сам контейнеризует необходимые процессы и ресурсы внутри себя. Это позволяет исключить необходимость в настройке Kubernetes на хост-машине, что упрощает развертывание и управление кластером.
Для создания Kubernetes-кластера с использованием Docker, достаточно запустить команду "docker swarm init". Эта команда инициализирует Swarm Mode, встроенную в Docker, и создает кластер с одним узлом. Затем можно добавить кластеру еще узлы, запустив команду на соответствующей машине.
Подключение Docker кобу control plane Kubernetes осуществляется с помощью элемента управления "kubelet", который автоматически интегрируется в Docker Swarm.
Таким образом, Docker Engine 17.10 предоставляет удобную возможность использования Kubernetes-кластера внутри Docker, что значительно упрощает создание и управление кластером, а также облегчает разработку и тестирование Kubernetes-приложений.
Интеграция с Kubernetes API
Докер начал предоставлять интеграцию с Kubernetes API начиная с версии Docker Engine 17.10. Теперь пользователи Docker могут использовать мощь Kubernetes для управления и оркестрации своих контейнеризованных приложений.
Интеграция с Kubernetes API в Docker Engine позволяет:
- Получать информацию о состоянии Kubernetes кластера.
- Управлять подами (Pods), службами (Services) и другими ресурсами Kubernetes.
- Создавать и удалять поды, службы и другие ресурсы.
- Масштабировать поды и службы по требованию.
- Мониторить состояние приложений и контейнеров.
Для работы с Kubernetes API из Docker Engine необходимо указать параметры подключения к кластеру Kubernetes. Возможные параметры включают адрес и порт API сервера Kubernetes, файлы сертификатов и токен авторизации.
После настройки подключения, Docker Engine может использовать Kubernetes API для создания и управления ресурсами Kubernetes. Например, команда "docker service create" может быть использована для создания службы в Kubernetes, а команда "docker service scale" - для масштабирования службы.
Интеграция с Kubernetes API позволяет пользователям Docker использовать преимущества Kubernetes для управления и развертывания контейнеризованных приложений. Это может быть особенно полезно при работе с крупными проектами, которые требуют сложного оркестрации и управления контейнерами.
Вопрос-ответ:
Какие новые возможности и функции появились в выпуске Docker Engine 17.10?
В выпуске Docker Engine 17.10 появилось несколько новых и интересных возможностей. В частности, была добавлена поддержка частично развернутых сервисов, улучшена работа с кешем слоев образов, а также появилась возможность проводить обновление Docker Engine в автоматическом режиме.
Какая новая функциональность связана с частично развернутыми сервисами?
В Docker Engine 17.10 добавлена новая функциональность, которая позволяет частично развернуть сервисы. Это означает, что можно запустить только несколько контейнеров из сервиса, вместо полного развертывания всего сервиса. Это может быть полезно в ситуациях, когда требуется быстро протестировать работу отдельного контейнера или только части проекта.
Как улучшена работа с кешем слоев образов в Docker Engine 17.10?
В выпуске Docker Engine 17.10 было внесено несколько улучшений в работу с кешем слоев образов. В частности, была добавлена возможность кеширования при сборке образа, что позволяет значительно ускорить процесс сборки. Кроме того, был внедрен новый алгоритм кеширования, который более эффективно использует ресурсы и обеспечивает более быструю загрузку контейнеров.
Можно ли обновить Docker Engine в автоматическом режиме?
Да, в Docker Engine 17.10 была добавлена возможность обновления в автоматическом режиме. Теперь вы можете настроить автоматическое обновление Docker Engine, чтобы всегда использовать последнюю версию программы. Это позволяет упростить процесс обновления и обеспечивает использование новых функций и исправлений без необходимости ручного вмешательства.
Какие еще новые возможности и функции появились в Docker Engine 17.10?
Помимо уже упомянутых возможностей, в Docker Engine 17.10 были добавлены и другие новые функции. Например, была внедрена поддержка архитектуры ARM64, что позволяет запускать Docker на серверах на базе процессоров ARM. Кроме того, было улучшено управление событиями в Docker Engine, добавлена поддержка виртуальных сетей между контейнерами и многое другое.
Видео:
Complete Docker Course - From BEGINNER to PRO! (Learn Containers)
Complete Docker Course - From BEGINNER to PRO! (Learn Containers) by DevOps Directive 4 months ago 4 hours, 44 minutes 90,639 views
Introduction To Docker Engine and Docker Containers | Docker Architecture | How Docker Works? Hindi
Introduction To Docker Engine and Docker Containers | Docker Architecture | How Docker Works? Hindi by S3CloudHub 3 years ago 9 minutes, 10 seconds 2,306 views