Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 4 Следующий »

Термины

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

Гипервизор - программное обеспечение, позволяющее запускать многожественные гостевы (виртуальные) машины на единственной физической машине (хост-машине), а также обеспечивающее  передоставление ресурсов виртуальным машинам.

Гостевая машина - виртуальная машина, запускаемая в изолированной среде системы виртуализации внутри хост-машины.

Гостевая операционная система - операционная система, работающая на гостевой машине.

Хост-машина - машина, в операционной системе которой запускатся система виртуализации и работающие в этой системе виртуализации гостевые машины.

Типы виртуализации в ОС СН

Программное обеспечение входящее в состав ОС СН поддерживает два типа виртуализации:

  • Полная виртуализация - технология виртуализации обеспечивающая полное моделирование используемого оборудования полностью индивидуальное для каждой гостевой ОС. Гостевые ОС полностью изолированы друг от друга, и каждая гостевая ОС работает в собственной программно-аппаратной среде, полностью копирующей реальное оборудование и содержащей полную копию всех необходимых ресурсов;

  • Контейнерная виртуализация - технология виртуализации обеспечивающая совместное использование ресурсов гостевыми операционными системами. Экземпляры операционных системах, выполняющихся в контейнерах, изолированы друг от друга, но при этом некоторые ресурсы используются ими совместно.

Аппаратная платформа
Аппаратная платформа
Хостовая операционная система
Хостовая операционная система
Гипервизор
Модуль контейнеризации
Гостевая ОС 1
Гостевая ОС 1
Гостевая ОС 2
Приложение 1
Приложение 2
Приложение 3
Гостевая ОС 2
Приложение 4
Гостевая ОС 1
Гостевая ОС 2
Приложение 1
Приложение 1
Приложение 1
Приложение 1

Системы виртуализации  в ОС СН

В состав ОС СН входят две системы виртуализации, поддерживающие два описанных выше типа виртуальзации:

  • libvirt - система полной виртуальзации;
  • docker - система контейнерной вартуализации.

Система контейнерной виртуализации Docker

Термины

Образ - набор упорядоченных слоёв, фактически сумма изменений, внесённых в систему, текущее состояние системы;

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

Контейнер - экземпляр образа docker, образ, находящийся в работе, то есть образ с новым слоем текущих изменений. При работе контейнера все изменния сохраняются в новом слое, а все предыдущие слои остаются неизменными;

Реестр образов - сетевое хранилище подготовленных образов, доступных для загрузки на целевые машины.

Особенности

Система контейнерной виртуализации Docker позиционируется не только как система виртуализации, но как система быстрого распространения и развёртывания приложений.

Традиционный способ развёртывания приложений предполагает:

  • передачу пользователю приложения комплекта неких файлов приложения как правило:
    • исполнимый файл;
    • конфигурационный файл;
    • сценарии установки и удаления;
    • инструкции по установке;
  • выполнение пользователем для развёртывания предоставленных сценариев и инструкций на целевой машине.

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

Docker предлагает альтернативный вариант развёртывания: поставщик приложений передаёт пользователям приложений предварительно настроенные контейнеры с приложениями. Эти контейнеры просто запускаются пользователем на целевой машине, предоставляя каждому приложению изолированное преднастроенное окружение для работы. Таким образом исключается существенная часть ошибок, связанных с предварительной настройкой нестандартных пользовательских систем. Хорошим примером использования возможностей Docker по быстрому развёртыванию приложений явлется пример развёртывания собственного реестра образов, выполняемого путём простого скачивания подготовленного образа (см. раздел "Администрировани" - "Создание собственного реестра образов").

При этом, по сравнению с системами полной виртуализации, запуск контейнеров требует значительно меньших вычислительныз ресурсов, и, кроме того, Docker для экономии ресурсов поддерживает систему повторного использования "слоёв". "Слой" в терминологии Docker - это некий моментальный снимок состояния системы, а "образ" - это итоговое состояние системы с учетом cостояний всех подлежащих слоёв. При этом "слои" могут использоваться повторно разными "образами":

Слой "Базовая система Astra Linux SE"
Слой "Установка пакетов LibreOffice"
Слой документы пользоваля №1
Слой документы пользоваля №2
Слой "Установка пакетов FreeIPA"
Слой "Контроллер домена FreeIPA"
Слой "Установка пакетов Samba"
Слой "Файловый сервер Samba"
Контейнер "Работающий контроллер домена FreeIPA"
Контейнер "Работающий пользователь"
Слой "Реестр образов Docker"
Контейнер "Работающий ресстр образов Docker"

Дополнительным эффектом от повторного использования "слоёв" является снижение объёмов передаваемых данных при передаче подготовленных в виде образов прикладных программ: при использовании реестра образов Docker передаваться будет только новые слои, в примере выше - слой "Базовая система Astra Linux SE" будет загружен из репозитория только один раз, далее загружаться будут только новые слои.

Администрирование Docker

Установка Docker

См. статью: Установка docker в ОС Astra Linux

Создание собственного реестра образов

  1. Загрузить подготовленный образ Docker, содержащий приложение "Реестр образов Docker":

    sudo docker run -d -p 5000:5000 --restart=always --name registry registry:2

    Unable to find image 'registry:2' locally
    2: Pulling from library/registry
    0a6724ff3fcd: Pull complete 
    d550a247d74f: Pull complete 
    1a938458ca36: Pull complete 
    acd758c36fc9: Pull complete 
    9af6d68b484a: Pull complete 
    Digest: sha256:d5459fcb27aecc752520df4b492b08358a1912fcdfa454f7d2101d4b09991daa
    Status: Downloaded newer image for registry:2
    782dbf275b4521715930a5478c3af2ed3e77614fc6042d03fff9a27740fafd97

После выполнения указанной команды локальный реестр образ готов к работе.

Для остановки работы реестра:

sudo docker container stop registry
Удаление реестра:
sudo docker container stop registry && sudo docker container rm -v registry
Настройка внешнего доступа к собственному реестру

Создание собственного образа

См. статью: Создание собственного образа для использования в Docker

Управление слоями в образе


Загрузка образа в реестр

Получить список доступных образов:

sudo docker image ls

REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
wiki/astralinux                 se17rc5             5d69ce8720a7        25 hours ago        318MB
registry                        2                   678dfa38fcfa        12 days ago         26.2MB
localhost:5000/hello-world-se   latest              bf756fb1ae65        12 months ago       13.3kB
hello-world                     latest              bf756fb1ae65        12 months ago       13.3kB
Пометить образ тэгом (tag) для загрузки в нужный реестр:
sudo docker tag wiki/astralinux:se17rc5 localhost:5000/se17rc5
Перепроверить список доступных образов:
 sudo docker image ls

REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
wiki/astralinux                 se17rc5             5d69ce8720a7        25 hours ago        318MB
localhost:5000/se17rc5          latest              5d69ce8720a7        25 hours ago        318MB
registry                        2                   678dfa38fcfa        12 days ago         26.2MB
localhost:5000/hello-world-se   latest              bf756fb1ae65        12 months ago       13.3kB
hello-world                     latest              bf756fb1ae65        12 months ago       13.3kB
Загрузить образ в репозиторий:
sudo docker push localhost:5000/se17rc5

The push refers to repository [localhost:5000/se17rc5]
d5f516170dbe: Pushed 
latest: digest: sha256:8d12b1c9ebe3b3060734965bbd7214a0063633261bf1da17d3caf50ed4f1f534 size: 529


Использование Docker

Получение образа из реестра





  • Нет меток