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

В состав ОС СН входят две системы виртуализации, поддерживающие два описанных выше типа виртуальзации:
Образ - набор упорядоченных слоёв, фактически сумма изменений, внесённых в систему, текущее состояние системы;
Слой - в трактовке Docker набор изменений файловой системы, другими словами - некий моментальный снимок состояния системы. Слои доступны только для чтения, каждое изменение порождает новый слой. Любой слой может использоваться несколькоми образами одновременно;
Контейнер - экземпляр образа docker, образ, находящийся в работе, то есть образ с новым слоем текущих изменений. При работе контейнера все изменния сохраняются в новом слое, а все предыдущие слои остаются неизменными;
Реестр образов - сетевое хранилище подготовленных образов, доступных для загрузки на целевые машины.
Система контейнерной виртуализации Docker позиционируется не только как система виртуализации, но как система быстрого распространения и развёртывания приложений.
Традиционный способ развёртывания приложений предполагает:
При этом, несмотря на то, что разработчиками приложений тратятся значительные усилия на создание сценариев развёртывания, учитывающих всевозможные особенности целевыз машин и возможные конфликты с другими приложениями, выполение действий по установке часто завершается неудачей,
Docker предлагает альтернативный вариант развёртывания: поставщик приложений передаёт пользователям приложений предварительно настроенные контейнеры с приложениями. Эти контейнеры просто запускаются пользователем на целевой машине, предоставляя каждому приложению изолированное преднастроенное окружение для работы. Таким образом исключается существенная часть ошибок, связанных с предварительной настройкой нестандартных пользовательских систем. Хорошим примером использования возможностей Docker по быстрому развёртыванию приложений явлется пример развёртывания собственного реестра образов, выполняемого путём простого скачивания подготовленного образа (см. раздел "Администрировани" - "Создание собственного реестра образов").
При этом, по сравнению с системами полной виртуализации, запуск контейнеров требует значительно меньших вычислительныз ресурсов, и, кроме того, Docker для экономии ресурсов поддерживает систему повторного использования "слоёв". "Слой" в терминологии Docker - это некий моментальный снимок состояния системы, а "образ" - это итоговое состояние системы с учетом cостояний всех подлежащих слоёв. При этом "слои" могут использоваться повторно разными "образами":

Дополнительным эффектом от повторного использования "слоёв" является снижение объёмов передаваемых данных при передаче подготовленных в виде образов прикладных программ: при использовании реестра образов Docker передаваться будет только новые слои, в примере выше - слой "Базовая система Astra Linux SE" будет загружен из репозитория только один раз, далее загружаться будут только новые слои.
См. статью: Установка docker в ОС Astra Linux
Загрузить подготовленный образ Docker, содержащий приложение "Реестр образов Docker":
Unable to find image 'registry:2' locally |
После выполнения указанной команды локальный реестр образ готов к работе.
Для остановки работы реестра:
| sudo docker container stop registry |
Удаление реестра:
| sudo docker container stop registry && sudo docker container rm -v registry |
Настройка внешнего доступа к собственному реестру
Создание собственного образа
См. статью: Создание собственного образа для использования в Docker
Получить список доступных образов:
REPOSITORY TAG IMAGE ID CREATED SIZEwiki/astralinux se17rc5 5d69ce8720a7 25 hours ago 318MBregistry 2 678dfa38fcfa 12 days ago 26.2MBlocalhost:5000/hello-world-se latest bf756fb1ae65 12 months ago 13.3kBhello-world latest bf756fb1ae65 12 months ago 13.3kB |
Пометить образ тэгом (tag) для загрузки в нужный реестр:
| sudo docker tag wiki/astralinux:se17rc5 localhost:5000/se17rc5 |
Перепроверить список доступных образов:
REPOSITORY TAG IMAGE ID CREATED SIZEwiki/astralinux se17rc5 5d69ce8720a7 25 hours ago 318MBlocalhost:5000/se17rc5 latest 5d69ce8720a7 25 hours ago 318MBregistry 2 678dfa38fcfa 12 days ago 26.2MBlocalhost:5000/hello-world-se latest bf756fb1ae65 12 months ago 13.3kBhello-world latest bf756fb1ae65 12 months ago 13.3kB |
Загрузить образ в репозиторий:
| The push refers to repository [localhost:5000/se17rc5] d5f516170dbe: Pushed latest: digest: sha256:8d12b1c9ebe3b3060734965bbd7214a0063633261bf1da17d3caf50ed4f1f534 size: 529 |