Skip to Content

Сеть Cargo

В Nanocl 0.18 сеть настраивается на уровне Cargo. Укажите NetworkMode, PortBindings, Hostname и Dns рядом с Containers, а не внутри отдельного контейнера.

ApiVersion: v0.18 Cargoes: - Name: api NetworkMode: private-api PortBindings: 8080/tcp: - HostIp: 127.0.0.1 HostPort: "8080" Dns: - $$INTERNAL_GATEWAY Containers: - Name: api Image: ghcr.io/example/api:1.0.0

NetworkMode принимает непустое имя сети Docker либо поддерживаемые встроенные режимы default, bridge, host и none. Без этого поля используется сеть Nanocl по умолчанию. Пользовательские значения container:... отклоняются, поскольку Nanocl управляет общим сетевым пространством имён реплики с несколькими контейнерами.

Для именованной локальной сети, например private-api:

  • Nanocl использует существующую сеть Docker без изменений.
  • Если её нет, создаёт локальную bridge-сеть с возможностью подключения.
  • Сохраняет полученные параметры сети, чтобы ncproxy и ncdns разрешали селекторы именованных сетей.
  • Удаление Cargo не удаляет сеть Docker автоматически.

Сети — локальные ресурсы Docker узла, а не объекты Nanocl пространств имён. Nanocl 0.18 не предоставляет API Statefile для выбора драйвера или подсети.

Привязка портов хоста на уровне Cargo не поддерживается с NetworkMode: host и NetworkMode: none. Фиксированные порты также могут требовать остановки старого поколения перед запуском кандидата обновления и не гарантируют непрерывное переключение.

Внутренний шлюз

Nanocl подставляет $$INTERNAL_GATEWAY в любой части сериализованной конфигурации контейнера. Для именованной сети это её шлюз. Для встроенных режимов Docker используется шлюз nanoclbr0.

Последнее обновление