# Containerd

В качестве альтернативы можно воспользоваться другим решением.

# Запуск

Вот пример того, как можно запустить контейнер с использованием ctr:

Сначала убедитесь, что у вас есть образ контейнера, который вы хотите запустить. Если у вас его нет, вы можете сначала его загрузить с помощью ctr командой, например:
```
ctr images pull docker.io/library/alpine:latest
```
Затем запустите контейнер с помощью ctr run команды, указав необходимые параметры, например:
```
ctr run --rm -t --net-host docker.io/library/alpine:latest my-container sh
```
Здесь:

* `--rm` - указывает на то, что контейнер должен быть удален после завершения работы
* `-t` - выделяет псевдотерминал для контейнера
* `--net-host` - позволяет контейнеру использовать сеть хоста
* `docker.io/library/alpine:latest` - образ контейнера, который мы будем использовать
* `my-container` - имя контейнера
* `sh` - команда, которая будет выполнена внутри контейнера (в данном случае, запуск оболочки sh)
Таким образом, вы сможете запустить контейнер на хосте только с помощью containerd. 🚀

# Сборка

Для сборки образа с помощью containerd вам обычно требуется создать и сконфигурировать контейнер с помощью ctr CLI (Command Line Interface). Вот пример того, как можно собрать образ с использованием containerd:

Установите containerd и ctr CLI на вашем хосте.
Создайте конфигурационный файл для контейнера (например, config.toml):
```toml
[
process
]
args = ["echo", "Hello, World!"]
```
Создайте снимок (snapshot) с этим содержимым:
```bash
ctr snapshot create my-snapshot my-snapshot-bundle bundle.tar config.toml
```
Создайте контейнер с использованием этого снимка:
```bash
ctr container create my-container --snapshot my-snapshot
```
Запустите контейнер:
```bash
ctr container start my-container
```
Теперь у вас есть контейнер, запущенный с заданным содержимым. Для создания образа вы можете осуществить экспорт контейнера в архив и использовать его в дальнейшем:

```bash
ctr snapshot mount my-snapshot mountpoint
tar -C mountpoint -c . | docker import - my-image:tag
```
Образ my-image:tag теперь содержит содержимое вашего контейнера и может быть запущен через docker run.

Учтите, что containerd предоставляет более низкоуровневый доступ к контейнерам, поэтому процесс сборки образов может потребовать больше ручной работы и конфигурирования по сравнению с более высокоуровневыми инструментами типа Docker.