Рейтинг:3

Сеть моста Docker затеняет IP-адрес SSH-клиента, как изящно восстановить?

флаг cn

Мы используем виртуальную машину RHEL 7 с Docker для размещения нескольких внутренних служб. Последний раз, когда я бежал докер-компоновать чтобы запустить новый контейнер Docker, я потерял SSH-соединение с сервером и не смог его восстановить.

Коллега смог диагностировать, что виновником была новая сеть Docker, созданная как часть выполнения docker-compose command и чей диапазон IP-адресов случайно перекрылся с тем, в котором находится машина, с которой я подключаюсь. Мой коллега смог восстановить мой доступ, отключив демон Docker и удалив статический маршрут, созданный Docker, указывающий на мост рассматриваемой сети Docker. Он смог это сделать, потому что в его распоряжении была другая машина в той же подсети, что и рассматриваемая, и через которую он мог подключиться.

Теперь у меня есть проблема, что, имея возможность снова подключиться к серверу, я не могу запустить демон Docker без того, чтобы он также не восстановил эту неправильно работающую сеть и снова не отключил мое соединение. я тоже не умею пользоваться докер сеть рм или же докер сети обрезать однако сначала удалите сеть, поскольку эти команды работают только в том случае, если запущен демон Docker. У меня нет доступа к машине с IP-адресом, который не конфликтует с указанным диапазоном IP-адресов и имеет необходимые правила брандмауэра для доступа к машине, которую я пытаюсь восстановить.

Есть ли способ изящно разрешить эту ситуацию и снова запустить демон Docker без потери доступа к машине? При необходимости можно без проблем удалить контейнеры, связанные с указанной сетью. Я был бы счастлив, если бы смог вернуть машину в рабочее состояние в первую очередь.

я узнал от эта почта что можно настроить, какие диапазоны IP-адресов разрешено использовать Docker, что я обязательно сделаю, как только все снова заработает. Может ли это уже решить проблему само по себе или это повлияет только на сети, созданные Docker в будущем?

Рейтинг:1
флаг cn

Я нашел, возможно, неортодоксальное решение, но оно сработало: я написал сценарий, который запускает демон Docker, удаляет рассматриваемые сети, регистрирует, какие сети были удалены, и снова останавливает демон Docker на случай, если он не сработает. Таким образом, я мог бы запускать этот скрипт в фоновом режиме и выполнять необходимые команды даже при разрыве сеанса SSH. Таким образом, я мог вернуться, проверить журналы, чтобы увидеть, исчезли ли проблемные сети, и, наконец, снова запустить Docker Daemon, не будучи выгнанным.

Это был не самый элегантный скрипт, так что мне придется немного почистить его, но Docker снова работает.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.