Знакомство и настройка
Добро пожаловать! Рады, что вы хотите изучить Nanocl.
Эта страница поможет начать работу с Nanocl.
В руководстве вы научитесь:
- Понимать основы образов контейнеров, пространств имён, Cargo и экземпляров Cargo.
- Запускать образ контейнера как
cargo. - Изменять
cargo. - Настраивать правило прокси.
- Использовать файл конфигурации состояния для быстрого развёртывания.
Руководство предполагает, что у вас установлена актуальная версия Nanocl.
Если её нет, смотрите инструкции установки.
Начало руководства
Создадим и запустим cargo командой:
nanocl cargo run my-cargo nginx:1.23Скачивание образа и запуск контейнера могут занять несколько минут.
Используются следующие параметры:
my-cargo— имя Cargo.nginx:1.23— имя образа контейнера.
Команда создаст и запустит один экземпляр Cargo my-cargo.
Nanocl выберет IPv4-адрес для экземпляра Cargo. Значения по умолчанию следуют рекомендуемым практикам.
Посмотрите назначенный IP, проверив Cargo:
nanocl cargo inspect global.my-cargoУ меня назначен IPv4 10.2.0.2; проверим его через curl!
curl 10.2.0.2Теперь экземпляр Cargo Nginx работает по IPv4 10.2.0.2.
Что такое Cargo?
Вы запустили cargo, но что это такое?
Cargo — сохраняемая конфигурация нагрузки. Он содержит один или несколько именованных приложений, необязательные упорядоченные init-контейнеры и фиксированное число реплик. Каждая реплика содержит процессы, объявленные Cargo.
Если вы знакомы с Kubernetes, представляйте Cargo как вариант pod.
Получите список Cargo командой:
nanocl cargo lsПримерный вывод:
KEY CONTAINERS STATUS INSTANCES VERSION CREATED AT UPDATED AT
global.my-cargo my-cargo=nginx:1.23 start/start (unknown) 1/1 v0.1.0 2026-08-28 21:24:27 2026-08-28 21:24:27В общем случае для управления Cargo используйте:
nanocl cargoДоступные команды можно увидеть так:
nanocl cargo helpВывод:
Manage cargoes
Usage: nanocl cargo [OPTIONS] <COMMAND>
Commands:
list List existing cargo
create Create a new cargo
start Start cargoes by canonical keys
stop Stop cargoes by canonical keys
restart Restart cargoes by canonical keys
remove Remove cargoes by canonical keys
inspect Inspect a cargo by its canonical key
patch Update a cargo by its canonical key
history List cargo history
revert Revert cargo to a specific history
logs Show logs
run Run a cargo
stats Show stats of cargo
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print helpИтак, Cargo:
- Описывает один или несколько именованных контейнеров приложения.
- Может объявлять упорядоченные init-контейнеры и сохраняемое число реплик.
- Создаёт процессы каждой реплики и управляет ими.
Что такое экземпляр Cargo?
Теперь вы знаете Cargo; что такое его экземпляр?
Реплика Cargo — одна реализация его спецификации. Она может содержать несколько процессов приложения и, вне сети хоста, общую внутреннюю сетевую песочницу. Изоляция контейнеров использует пространства имён Linux и cgroups Docker.
Итак, экземпляр Cargo:
- Содержит именованные процессы приложения, объявленные Cargo.
- Имеет порядковый номер, доступный через
NANOCL_CARGO_INSTANCE. - Изолирован от других реплик и работает на локальном узле Docker.
Что такое образ контейнера?
Запуск Cargo создаёт экземпляр с изолированной файловой системой. Она называется образом контейнера и должна содержать всё для запуска приложения: зависимости, конфигурацию, скрипты, бинарные файлы и прочее.
Образ также содержит настройки контейнера, например переменные окружения, команду по умолчанию и метаданные.
Подробное рассмотрение контейнеров и образов заняло бы много времени; обратитесь к документации Docker .
Если вы знакомы с chroot, контейнер похож на его расширенную версию.
Файловая система берётся из образа.
Но контейнер добавляет изоляцию, которой нет у одного chroot.
Что такое пространство имён?
Пространство имён группирует объекты Nanocl, например Cargo и виртуальные машины. Сети Docker локальны для узла и не принадлежат пространствам имён.
Например, объекты разных доменов facebook.com и instagram.com можно разделить по пространствам имён.