# Контейнери

> Технологія для упаковки застосунку разом з його залежностями оточення виконання.

---

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->

На цій сторінці міститься огляд контейнерів та образів контейнерів, а також їх використання для розробки та промислової експлуатації.

Слово _контейнер_ є дуже перевантаженим терміном. Щоразу, коли ви використовуєте це слово, перевіряйте, чи ваша аудиторія використовує те саме визначення.

Кожен контейнер, який ви запускаєте, є повторюваним; стандартизація завдяки включеним залежностям означає, що ви отримуєте однакову поведінку, де б ви його не запускали.

Контейнери відокремлюють застосунки від базової інфраструктури хосту. Це полегшує розгортання в різних хмарних або ОС-середовищах.

Кожен <a class='glossary-tooltip' title='Вузол — це робоча машина в Kubernetes.' data-bs-toggle='tooltip' data-bs-placement='top' href='/uk/docs/concepts/architecture/nodes/' target='_blank' aria-label='вузол'>вузол</a> в кластері Kubernetes запускає контейнери, які формують [Podʼи](/docs/concepts/workloads/pods/), призначені цьому вузлу. Контейнери розташовуються та плануються разом, щоб запускатися на тому ж вузлі.

<!-- body -->

## Образи контейнерів {#container-images}

[Образ контейнера](/docs/concepts/containers/images/) — це готовий до запуску пакунок програмного забезпечення, який містить все необхідне для запуску застосунку: код та будь-яке середовище виконання, яке він вимагає, бібліотеки застосунку та системи, та типові значення для будь-яких важливих налаштувань.

Контейнери призначені для того, щоб бути stateless та [незмінними](https://glossary.cncf.io/immutable-infrastructure/): ви не повинні змінювати код контейнера, який вже працює. Якщо у вас є контейнеризований застосунок та ви хочете внести зміни, правильний процес полягає в тому, щоб побудувати новий образ, який включає зміни, а потім перебудувати контейнер, щоб запустити оновлений образ.

## Середовище виконання контейнерів {#container-runtimes}

<p>Основний компонент, який дозволяє Kubernetes ефективно запускати контейнери. Він відповідає за керування виконанням і життєвим циклом контейнерів у середовищі Kubernetes.</p>
<p>Kubernetes підтримує середовища виконання контейнерів, такі як <a class='glossary-tooltip' title='Середовище виконання контейнера з акцентом на простоту, надійність та переносимість.' data-bs-toggle='tooltip' data-bs-placement='top' href='https://containerd.io/docs/' target='_blank' aria-label='containerd'>containerd</a>, <a class='glossary-tooltip' title='CRI-O — це легке середовище виконання контейнерів, спеціально розроблене для Kubernetes.' data-bs-toggle='tooltip' data-bs-placement='top' href='https://cri-o.io/#what-is-cri-o' target='_blank' aria-label='CRI-O'>CRI-O</a>, та будь-яку іншу реалізацію <a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-node/container-runtime-interface.md">Kubernetes CRI (інтерфейс виконання контейнерів)</a>.</p>

Зазвичай, ви можете дозволити вашому кластеру обрати стандартне середовище виконання для Podʼа. Якщо вам потрібно використовувати більше одного середовища виконання контейнерів у вашому кластері, ви можете вказати [RuntimeClass](/docs/concepts/containers/runtime-class/) для Podʼа, щоб переконатися, що Kubernetes запускає ці контейнери за допомогою певного середовища виконання.

Ви також можете використовувати RuntimeClass для запуску різних Podʼів з однаковим контейнером, але з різними налаштуваннями.

---

Section pages:

- [Образ контейнера](/uk/docs/concepts/containers/images/)
- [Середовище контейнера](/uk/docs/concepts/containers/container-environment/)
- [Клас виконання](/uk/docs/concepts/containers/runtime-class/)
- [Хуки життєвого циклу контейнера](/uk/docs/concepts/containers/container-lifecycle-hooks/)
- [Інтерфейс середовища виконання контейнерів (CRI)](/uk/docs/concepts/containers/cri/)
