Новые возможности 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 появилась возможность обновлять запущенные контейнеры без необходимости их перезапуска. Это значительно упрощает процесс обновления приложений, так как больше нет необходимости останавливать и запускать контейнеры заново.
Для осуществления обновления без перезапуска необходимо сделать следующее:
- Остановить сервис Docker на хосте с помощью команды sudo service docker stop.
- Загрузить обновленный Docker Engine с помощью команды sudo apt-get upgrade docker-engine.
- Запустить сервис 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 добавлено два важных функционала для перемещения контейнеров:
- Перемещение между хостами с помощью команды docker container mv
- Перемещение в различные сетевые пространства имен
Перемещение контейнеров между хостами достигается путем использования команды 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 позволяет значительно упростить управление и развертывание нескольких связанных контейнеров. Это особенно полезно в разработке и тестировании комплексных приложений.
Гибкое масштабирование
Возможности гибкого масштабирования
- Поддержка масштабирования горизонтального и вертикального типа
- Возможность автоматического масштабирования на основе определенных правил
- Поддержка масштабирования в режиме реального времени
Преимущества гибкого масштабирования
- Повышение производительности и отказоустойчивости системы
- Экономия ресурсов, таких как время и деньги
- Простота управления и мониторинга
Пример использования гибкого масштабирования
Представим, что у нас есть веб-приложение, которое использует 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 позволяет более точное управление питанием в контейнерах, что может быть полезно в ситуациях, когда требуется минимизировать загрузку питания или наоборот - максимизировать ее. Например, при развертывании приложений на ноутбуках с ограниченной емкостью аккумулятора.