Контейнер (container) –- это определенная единица программного обеспечения, исполняемого в изолированной среде.
По своему функционалу контейнер можно считать аналогом виртуальной машины: для исполнения процессов контейнера обеспечивается изолированная среда, даются возможности управления исполнением этих процессов, предоставляется файловая система с возможностями чтения/записи и обеспечивается доступ к сети.
Однако виртуальной машиной контейнер не является, поскольку на самом деле процессы запущенного контейнера используют ресурсы ОС хоста.
Образ контейнера (image) –- это неизменяемый артефакт, включающий в себя все зависимости и код, необходимые для получения контейнера в определенном состоянии.
По своему функционалу образ контейнера аналогичен ISO-образу Live CD: вставил его в виртуальную машину, запустил и получил работающую систему с необходимым программным обеспечением.
Однако по своему устройству Docker-образ отличается от Live CD: он состоит из неизменяемых слоев, для каждого из которых определяются изменения относительно предыдущего слоя, при этом сами по себе эти слои также являются образами. Также стоит заметить, что образ является пошаговой инструкцией по получению нужного состояния контейнера, а не его снимком или копией.
Том (volume) –- это изолированная файловая система, подключаемая к контейнерам и предназначенная для постоянного хранения файлов.
Docker Compose позволяет определять приложения, состоящие из Docker-контейнеров, с помощью конфигурационных файлов на языке YAML и запускать их.
docker-compose.yml
services: # определяем сервисы, т.е. некоторые обособленные вычислительные ресурсы, входящие в состав нашего приложения
db: # определяем сервис БД и называем его db
image: postgres:14-alpine # используем образ с легеньким дистрибутивом Alpine Linux и 14 версией PostgreSQL, поставялемый через Docker Hub
environment: # определяем переменные окружения, используемые в данном сервисе
POSTGRES_USER: wikijs # указываем имя пользователя БД
POSTGRES_PASSWORD: wikijs # указываем пароль пользователя БД
POSTGRES_DB: wiki # указываем название БД
restart: unless-stopped # используем политику, при которой остановившийся сервис всегда будет перезапускаться, пока его не вырубят с помощью stop
volumes: # определяем список используемых сервисом томов
- db-data:/var/lib/postgresql/data # указываем, что том db-data нужно смонитровать в указанную директорию
wiki: # определяем вервис самого приложения Вики и называем его wiki
image: requarks/wiki:2 # используем образ Wiki.js версии 2, поставляемый разработчиком через Docker Hub
depends_on: # указываем, от каких других сервисов зависит этот
- db # указываем, что настоящему сервису необходим описанный выше сервис БД, и он должен быть запущен раньше настоящего
environment: # определяем переменные окружения, используемые в данном сервисе
DB_TYPE: postgres # уточняем тип СУБД, к которой будет подключаться приложение
DB_HOST: db # указываем, что хост, на котором размещена СУБД, на самом деле является контейнером, запущенным для реализации сервиса db
DB_PORT: 5432 # указываем TCP-порт, по которому приложение будет подключаться к СУБД
DB_USER: wikijs # указываем имя пользователя БД
DB_PASS: wikijs # указываем пароль пользователя БД
DB_NAME: wiki # указываем название БД
restart: unless-stopped # используем политику, при которой остановившийся сервис всегда будет перезапускаться, пока его не вырубят с помощью stop
ports: # указываем, какие сетевые порты необходимо сделать доступными снаружи контейнера
- "80:3000" # указываем, что TCP-порт 3000 внутри контейнера, реализующего данный сервис, необходимо пробросить на TCP-порт 80 снаружи этого контейнера
volumes: # называем необходимые для работы приложения тома
db-data: # объявляем том под названием db-data
Если запустить приложение с помощью команды docker compose up
, то при закрытии привязанного терминала оно действительно остановится. Чтобы избежать этого, необходимо использовать опцию -d
(--detach
), которая говорит о том, что после запуска приложения терминал нужно отвязать. Приложение продолжит работу в фоновом режиме.
$ docker compose up -d
Arthur Khazbulatov (MIoT221) Технологическая архитектура IIoT Technological Infrastructure of IIoT IoT as seen in Industrie 4.0 and Industrial Internet Consortium 1. Какие вы видите угрозы, риски, связанные с представленной архитектурой? — Основные угрозы, связанные с архитектурой IIoT, можно отнести к трем категориям: административно-операционные, технические и физические — они относятся к разным слоям архитектуры IIoT.
Apr 24, 2023Arthur Khazbulatov (MIoT221) 1. Security — A condition that results from the establishment and maintenance of protective measures that enable an organization to perform its mission or critical functions despite risks posed by threats to its use of systems. Protective measures may involve a combination of deterrence, avoidance, prevention, detection, recovery, and correction that should form part of the organization’s risk management approach. [^1] 2. Safety — Freedom from conditions that can cause death, injury, occupational illness, damage to or loss of equipment or property, or damage to the environment. [^2] 3. Cybersecurity — Prevention of damage to, protection of, and restoration of computers, electronic communications systems, electronic communications services, wire communication, and electronic communication, including information contained therein, to ensure its availability, integrity, authentication, confidentiality, and nonrepudiation. [^3]
Feb 5, 2023Датчики Генераторные: заряд, ток, напряжение. Интегрированные, интеллектуальные Параметрические:
Nov 16, 2022Тест Белбина разбит на 7 блоков по 8 утверждений. Для каждого блока предусмотрено по 10 баллов, которые необходимо распределить между утверждениями в зависимости от степени, в которой вы с ними согласны. Вы можете пройти онлайн-тест Белбина, чтобы определить свою роль в коллективе. РЕАЛИЗАТОР Характеристика. Реализаторам присущи практический здравый смысл и хорошее чувство самоконтроля и дисциплины. Они любят тяжелую работу и преодоление проблем в системном режиме. В большей степени Реализаторы являются типичными личностями, чья верность и интерес совпадают с ценностями Компании. Они менее сконцентрированы на преследовании собственных интересов. Тем не менее, им может не хватать спонтанности и они могут проявлять жесткость и непреклонность. Функциональность. Они очень полезны компании благодаря своей надежности и прилежанию. Они добиваются успеха, потому что очень работоспособны и могут четко определить то, что выполнимо и имеет отношение к делу. Говорят, что многие исполнители делают только ту работу, которую хотят делать и пренебрегают заданиями, которые находят неприятными. Реализаторы, наоборот, будут делать то, что необходимо делу. Хорошие Реализаторы часто продвигаются до высоких должностных позиций в управлении благодаря своим хорошим организаторским способностям и компетентности в решении всех важных вопросов. КООРДИНАТОР Характеристика. Отличительной чертой Координаторов является способность заставлять других работать над распределенными целями. Зрелый, опытный и уверенный, Координатор охотно раздает поручения. В межличностных отношениях они быстро раскрывают индивидуальные наклонности и таланты и мудро их используют для достижения целей команды. Они не обязательно самые умные члены команды, это люди с большим кругозором и опытом, пользующиеся общим уважением команды.
Sep 7, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up