Результат развертывания стека докеров: Нет такой ошибки изображения

Я использую docker swarm и хочу развернуть службу с docker-compose. Моя служба использует настраиваемый образ с именем myuser/myrepo:mytag, который я успешно развернул в Docker-Hub в частном репозитории.

Мой docker-compose выглядит так:

version: "3.3"

services:

  myservice:
    image: myuser/myrepo:mytag
    ports:
      - "8080:8080"

Перед выполнением я успешно вытащил изображение с помощью: docker pull myuser/myrepo:mytag

Когда я запускаю docker stack deploy -c docker-compose.yml myapp, я всегда получаю сообщение об ошибке: "No such image: myuser/myrepo:mytag".

Интересно, что при запуске того же файла с использованием только: docker-compose up (т.е. без режима роя) все работает нормально, и служба запускается.

Я действительно не понимаю, почему это не удается? Я уже пробовал очистить докер с помощью docker system prune, а затем восстановить свой образ, но безуспешно.


person user2350644    schedule 24.11.2017    source источник


Ответы (3)


Решение уже найдено. Мое изображение размещено в частном репозитории. Помимо менеджера роя (где я выполнял команды), у меня был работающий воркер роя.

Когда я запустил docker stack deploy -c docker-compose.yml myapp, докер развернул службу на рабочем узле (а не на управляющем узле, как я думал). На рабочем узле у докера не было учетных данных для извлечения образа из частного репозитория. Следовательно, чтобы исправить это, либо передайте флаг --with-registry-auth (который отправляет учетные данные для репозитория на рабочий узел), либо убедитесь, что служба развернута на узле, где присутствует изображение.

См .: https://docs.docker.com/engine/reference/commandline/deploy/

person user2350644    schedule 24.11.2017
comment
Привет, я использую docker stack deploy --prune --with-registry-auth --resolve-image=always --compose-file docker-compose.yml stack_name и часто получаю эту ошибку. Это очень случайно, иногда все узлы получают изображение, иногда нет. Некоторое время это сводило меня с ума. Вы хоть представляете, в чем может быть проблема? Я также использую частный реестр. - person Konrad; 04.02.2021

Я хочу добавить еще один сценарий, который приводит к такому же результату (сообщение об ошибке), чтобы люди не бились головой об стену.

Другая возможность заключается в том, что вы пытаетесь развернуть образ с помощью небезопасный реестр, но вы забыли отредактировать daemon.json на сервере, загружающем образ.

Если это так, пусть этот ответ действует как напоминание; и сэкономит вам время.

person Curious Sam    schedule 23.12.2020

У меня была аналогичная проблема на Mac, когда я находился за корпоративным брандмауэром.

Я смог решить только после подключения напрямую к Интернету.

Просто для обновления, пока я использую VPN, я могу получить доступ к Интернету без каких-либо настроек прокси-сервера и могу загружать (докеры) изображения с docker run. Проблема только с docker-compose.

Я попытался изменить сервер имен на 8.8.8.8 в resolv.conf на своих виртуальных машинах, но проблема не была решена.

person ghitesh    schedule 30.07.2019