Docker Network не найдена - PullRequest
       19

Docker Network не найдена

0 голосов
/ 17 ноября 2018

В нашей команде мы в настоящее время переходим на Docker для развертывания всего на нашем сервере.

Мы используем Docker Swarm и несколько (10+) составляем файлы, определяющие множество (20+) сервисов.Пока что все прекрасно работает, за исключением случаев, когда мы убираем наш стек с помощью docker stack rm <name> (и повторно развертываем с использованием docker stack deploy <options> <name>): примерно каждый второй раз мы получаем следующую ошибку:

Failed to remove network <id>: Error response from daemon: network <id> not foundFailed to remove some resources from stack: <name>

При использовании docker network ls сеть действительно не удаляется, однако docker network rm <id> всегда приводит к следующему:

Error response from daemon: network <id> not found

Еще более странным является тот факт, что docker network inspect <id> возвращает нормальный вывод.Сети - это всегда overlay сети, созданные с помощью файлов компоновки, используемых для развертывания нашего стека.В настоящее время у нас есть только один узел в нашем Swarm.

Наш текущий «обходной путь» - перезапустить Docker (который решает проблему), но это не является жизнеспособным решением в производственной среде.Оставление роя и повторное присоединение к нему не решает проблему.

Сначала мы подумали, что эта проблема связана только с Docker для Mac (как мы впервые столкнулись с проблемой на локальных машинах), однакота же проблема возникает в Debian Stretch.В обоих случаях мы используем последний доступный дистрибутив Docker.

Буду очень признателен за любую помощь!

Ответы [ 4 ]

0 голосов
/ 19 июня 2019

старые контейнеры все еще используют старую сеть. Возможно, вы удалили сети, но забыли старые контейнеры. Просто удалите старые контейнеры, создайте свою сеть и создайте заново.

0 голосов
/ 27 ноября 2018

Вы всегда можете использовать docker system prune -a, чтобы избавиться от старой сети. Это не удалит ваши тома.
В следующий раз потребуется больше времени на docker-compose up --build -d, но вы справитесь с текущей проблемой.

0 голосов
/ 27 марта 2019

Если вы пытаетесь добавить контейнер в существующую сеть, которая больше не существует, вы можете использовать docker-compose up --force-recreate. Я нашел этот комментарий к GitHub полезным обзором.

0 голосов
/ 21 ноября 2018

Это звучит точно так же, как эта проблема .

Stak rm, за которым последовало "слишком быстрое" развертывание стека, может привести к созданию / удалению сетей, возможно других ресурсов стека.

На сегодня проблема все еще открыта ( docker / cli ), но вы можете попробовать предложенный обходной путь:

until [ -z "$(docker service ls --filter label=com.docker.stack.namespace=$COMPOSE_PROJECT_NAME -q)" ] || [ "$limit" -lt 0 ]; do
  sleep 1;
done

until [ -z "$(docker network ls --filter label=com.docker.stack.namespace=$COMPOSE_PROJECT_NAME -q)" ] || [ "$limit" -lt 0 ]; do
  sleep 1;
done
...