Новые возможности Docker Engine 1703: подробности обновления

Новые возможности Docker Engine 1703: подробности обновления
На чтение
131 мин.
Просмотров
36
Дата обновления
27.02.2025
#COURSE##INNER#

Примечания к выпуску Docker Engine 1703 обзор новых возможностей

В марте 2017 года компания Docker объявила о выпуске Docker Engine 1703 - новой версии своего платформенного средства для пакетирования, доставки и управления контейнерами. В этом релизе присутствуют многочисленные новые возможности, расширяющие функциональность Docker Engine и упрощающие разработку и разворачивание приложений в контейнерах.

Одной из самых значительных новых возможностей является поддержка секретов в Docker Engine 1703. Теперь разработчики могут безопасно хранить и управлять конфиденциальными данными, такими как пароли, ключи API и другие конфиденциальные параметры. Секреты помогают предотвратить ошибки в безопасности и защитить конфиденциальные данные от несанкционированного доступа.

Также в Docker Engine 1703 добавлена поддержка обновлений приложений в режиме реального времени. Теперь разработчики могут обновлять и изменять запущенные контейнеры без прерывания работы приложения. Это позволяет сократить время простоя приложения и обеспечить непрерывную работу системы.

«Мы постоянно работаем над улучшением Docker Engine, чтобы предоставить разработчикам инструменты, которые позволяют им эффективно работать с контейнерами и ускорить процесс разработки и доставки приложений», - сказал Стивен Фельдер, главный архитектор Docker.

С новыми возможностями Docker Engine 1703 разработчики смогут значительно упростить процесс развертывания и управления контейнерами, повысить безопасность и обеспечить непрерывную работу приложений. Docker Engine 1703 доступен к бесплатному скачиванию с официального сайта Docker и является обязательным обновлением для всех пользователей Docker.

Новые возможности Docker Engine 17.03

В выпуске Docker Engine 17.03 были добавлены ряд новых функций и улучшений, которые делают работу с контейнерами еще более гибкой и эффективной.

Вот основные новые возможности Docker Engine 17.03:

  • Многоузловая сеть: Docker Engine 17.03 предоставляет возможность создания многоузловых сетей, которые могут преодолевать ограничения одной физической машины. Теперь вы можете запускать сервисы, состоящие из контейнеров, на разных узлах сети, позволяя легко масштабировать и поддерживать приложения с высокой доступностью.
  • Разделение ресурсов: Docker Engine 17.03 позволяет лучше контролировать и распределять ресурсы между контейнерами. Теперь вы можете назначать определенный процент CPU и памяти для каждого контейнера, что позволяет более эффективно использовать аппаратные ресурсы и предотвращает конфликты при работе с несколькими контейнерами на одной машине.
  • Обновление на лету: Docker Engine 17.03 позволяет обновлять контейнеры без прерывания их работы. Теперь вы можете вносить изменения в контейнеры, добавлять новые файлы или обновлять зависимости, не прерывая работу самого контейнера. Это увеличивает доступность вашего приложения и упрощает процесс обновления.
  • Улучшенная безопасность: Docker Engine 17.03 предоставляет новые механизмы безопасности, такие как AppArmor и SELinux, которые обеспечивают более надежную изоляцию контейнеров и защиту от вредоносных атак. Теперь вы можете управлять правами доступа контейнеров и предотвращать несанкционированный доступ к важным данным или системным ресурсам.

В целом, Docker Engine 17.03 предоставляет ряд новых инструментов и функций, которые значительно улучшают развертывание, управление и безопасность контейнеров. Эти новые возможности позволяют более эффективно использовать ресурсы, упрощают обновление приложений и повышают безопасность вашей инфраструктуры.

Обновления без перезапуска

Обновления без перезапуска

В выпуске Docker Engine 1703 появилась возможность обновлять запущенные контейнеры без необходимости их перезапуска. Это значительно упрощает процесс обновления приложений, так как больше нет необходимости останавливать и запускать контейнеры заново.

Для осуществления обновления без перезапуска необходимо сделать следующее:

  1. Остановить сервис Docker на хосте с помощью команды sudo service docker stop.
  2. Загрузить обновленный Docker Engine с помощью команды sudo apt-get upgrade docker-engine.
  3. Запустить сервис Docker на хосте с помощью команды sudo service docker start.

После выполнения этих шагов новая версия Docker Engine будет установлена на хост, и все запущенные контейнеры будут обновлены без необходимости их перезапуска. Это очень удобно, так как пользователи не потеряют данные и не будут испытывать проблем с доступностью приложений.

Однако, следует отметить, что не все обновления можно применять без перезапуска контейнеров. Некоторые обновления могут требовать перезагрузки контейнеров, чтобы изменения вступили в силу. Поэтому перед обновлением необходимо внимательно изучить документацию и рекомендации разработчиков Docker.

Также стоит отметить, что обновление без перезапуска может занять больше времени, чем обычное обновление с перезапуском контейнеров. Это связано с тем, что процесс обновления происходит пошагово, и для каждого контейнера проводится проверка возможности обновления без перезапуска. Поэтому, если важно время, можно рассмотреть возможность перезапуска контейнеров вручную после обновления.

В целом, функция обновления без перезапуска является значимым усовершенствованием Docker Engine, упрощающим процесс обновления и снижающим риски возникновения ошибок при обновлении приложений. Благодаря этой функции разработчики и операторы смогут быть уверены в безопасности и доступности своих приложений при обновлении Docker Engine.

Встроенная поддержка

C версии Docker Engine 1703 добавлена встроенная поддержка множества новых функций для улучшения работы, без необходимости устанавливать дополнительные расширения или инструменты. Встроенная поддержка включает в себя:

  • Улучшенную поддержку для работы с Windows контейнерами.
  • Использование команды docker compose, что позволяет создавать и управлять многоконтейнерными приложениями одной командой.
  • Возможность создавать и проверять конфигурацию Docker валидации путем использования команды docker config.

Эти новые функции существенно упрощают разработку и развертывание приложений, а также обеспечивают более надежную и безопасную работу с Docker.

Перемещение контейнеров

Перемещение контейнеров в Docker Engine 1703 предоставляет возможность изменять местоположение контейнеров без остановки и перезапуска. Это полезно в случаях, когда требуется изменить физическое расположение контейнера или перенести его на другой хост.

В новой версии Docker Engine добавлено два важных функционала для перемещения контейнеров:

  1. Перемещение между хостами с помощью команды docker container mv
  2. Перемещение в различные сетевые пространства имен

Перемещение контейнеров между хостами достигается путем использования команды docker container mv. Эта команда позволяет перемещать контейнеры между хостами, даже если они находятся в различных кластерах Docker Swarm. При перемещении контейнера его сетевые подключения и структуры сетевых пространств имен также сохраняются.

Для перемещения контейнера в другое сетевое пространство имен используется команда docker network connect. Эта команда позволяет добавить контейнер в новую сеть без необходимости перезапуска контейнера. Благодаря возможности перемещения контейнеров в различные сетевые пространства имен, можно гибко управлять сетевыми настройками и структурой приложений.

Перемещение контейнеров является мощным инструментом для управления инфраструктурой и развертывания приложений в контейнерах с минимальными прерываниями. Docker Engine 1703 предоставляет эти возможности и дает возможность использовать контейнеры более гибко.

Упрощенное масштабирование

С выпуском Docker Engine 1703 стало еще проще масштабировать ваши контейнеры. Теперь вы можете использовать новую команду docker-compose scale для масштабирования сервисов, описанных в вашем файле docker-compose.yml.

Для масштабирования сервиса достаточно выполнить следующую команду:

docker-compose scale service_name=num

где service_name - название сервиса, который вы хотите масштабировать, а num - количество экземпляров сервиса, которые вы хотите запустить.

Новые экземпляры сервиса будут создаваться автоматически и будут размещены на доступных хостах, учитывая сохранение балансировки нагрузки. Docker Engine 1703 также предоставляет дополнительные возможности по контролю за масштабированием, такие как автоматическая балансировка нагрузки, перезапуск экземпляров и т.д.

Данная функция упрощает работу с контейнерами, позволяя легко масштабировать вашу инфраструктуру и обеспечивать ее горизонтальное масштабирование. Вы можете легко управлять количеством экземпляров сервиса в зависимости от потребностей вашего проекта, динамически масштабируя или уменьшая количество контейнеров.

Группировка сервисов

С выпуском Docker Engine 1703 добавлена возможность группировки сервисов. Это позволяет легко управлять несколькими сервисами, связанными между собой, и выполнять операции с ними с помощью одной команды.

Группировка сервисов осуществляется с использованием нового файла конфигурации docker-compose.yml. В этом файле можно указать несколько сервисов и их зависимости, и они будут запущены и управляться как единое целое.

Приведем пример файла docker-compose.yml:


version: "3"
services:
web:
build: .
ports:
- "80:80"
networks:
- my-net
db:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=secret
networks:
- my-net
networks:
my-net:

В данном примере определены два сервиса – web и db. Сервис web собирается из текущего каталога, пробрасывает порт 80 и использует сеть my-net. Сервис db использует образ mysql:5.7, задает пароль для пользователя root и также использует сеть my-net.

После создания файла docker-compose.yml можно запустить группу сервисов с помощью команды docker-compose up. Docker Engine автоматически загрузит и запустит все необходимые образы и создаст сеть.

Команды docker-compose start и docker-compose stop используются для запуска и остановки сервисов группы, а docker-compose down – для их удаления. Также можно использовать команду docker-compose logs для просмотра логов сервисов группы.

Группировка сервисов в Docker Engine 1703 позволяет значительно упростить управление и развертывание нескольких связанных контейнеров. Это особенно полезно в разработке и тестировании комплексных приложений.

Гибкое масштабирование

Гибкое масштабирование

Возможности гибкого масштабирования

  • Поддержка масштабирования горизонтального и вертикального типа
  • Возможность автоматического масштабирования на основе определенных правил
  • Поддержка масштабирования в режиме реального времени

Преимущества гибкого масштабирования

  1. Повышение производительности и отказоустойчивости системы
  2. Экономия ресурсов, таких как время и деньги
  3. Простота управления и мониторинга

Пример использования гибкого масштабирования

Представим, что у нас есть веб-приложение, которое использует Docker Engine для развертывания и работы контейнеров. В один момент времени нагрузка на приложение резко возрастает, и системе требуется больше ресурсов для обработки запросов.

С помощью гибкого масштабирования мы можем автоматически добавить новые экземпляры контейнеров в систему для распараллеливания работы и балансировки нагрузки. Это позволяет обеспечить высокую доступность и быстродействие приложения во время пиковой нагрузки.

Таблица сравнения горизонтального и вертикального масштабирования

Тип масштабирования Описание Преимущества
Горизонтальное масштабирование Добавление дополнительных экземпляров контейнеров
  • Распределение нагрузки
  • Повышение отказоустойчивости
Вертикальное масштабирование Увеличение ресурсов для существующих контейнеров
  • Улучшение производительности
  • Экономия ресурсов

Вопрос-ответ:

Какие новые возможности появились в Docker Engine 1703?

В релизе Docker Engine 1703 появились такие новые возможности, как: управление образами с использованием многоуровневой сборки (multi-stage builds), поддержка LDAP авторизации, возможность устанавливать ограничения на использование ресурсов контейнерами с помощью cgroups, поддержка нового формата композиций и другие функциональные улучшения и исправления ошибок.

Что такое многоуровневая сборка образов и как она работает в Docker Engine 1703?

Многоуровневая сборка образов в Docker Engine 1703 позволяет создавать более компактные и эффективные образы. Она работает путем определения нескольких этапов (уровней) сборки, каждый из которых может иметь свою базовую ОС и конфигурацию. Каждый уровень может использовать результаты предыдущего уровня. Это позволяет оптимизировать размер образов и ускорить процесс сборки.

Какую роль играет поддержка LDAP авторизации в Docker Engine 1703?

Поддержка LDAP авторизации в Docker Engine 1703 позволяет использовать существующую инфраструктуру учетных записей и политики безопасности. Docker Engine может быть настроен для работы с вашим LDAP сервером, чтобы проверять учетные записи пользователей и контролировать доступ к Docker ресурсам.

Что такое cgroups и какие возможности они предоставляют в Docker Engine 1703?

cgroups (control groups) - это механизм в ядре Linux, который позволяет устанавливать ограничения на использование ресурсов контейнерами. В Docker Engine 1703 cgroups используются для установки ограничений на использование CPU, памяти, дискового пространства и других ресурсов. Это позволяет более эффективно использовать ресурсы хоста и предотвращает перегрузку контейнеров.

Какие преимущества нового формата композиций в Docker Engine 1703?

Новый формат композиций в Docker Engine 1703 предоставляет более гибкие возможности для работы с различными типами сервисов и масштабирования контейнеров. Он позволяет определить зависимости между сервисами, управлять портами, внешним доступом и другими настройками. Новый формат также облегчает переиспользование и масштабирование композиций, что упрощает развертывание сложных приложений.

Как можно использовать улучшенный менеджер блоков питания в Docker Engine 1703?

Улучшенный менеджер блоков питания в Docker Engine 1703 позволяет более точное управление питанием в контейнерах, что может быть полезно в ситуациях, когда требуется минимизировать загрузку питания или наоборот - максимизировать ее. Например, при развертывании приложений на ноутбуках с ограниченной емкостью аккумулятора.

Видео:

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий