AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1066647
Accepted
Martin Wurm
Martin Wurm
Asked: 2021-06-15 03:55:13 +0800 CST2021-06-15 03:55:13 +0800 CST 2021-06-15 03:55:13 +0800 CST

Docker bridge network shadows SSH客户端的IP,如何优雅恢复?

  • 772

我们正在运行带有 Docker 的 RHEL 7 VM 来托管几个内部服务。上次我跑去docker-compose up启动一个新的 Docker 容器时,我失去了与服务器的 SSH 连接,也无法重新建立它。

一位同事能够诊断出罪魁祸首是一个新的 Docker 网络,该网络是作为执行docker-compose命令的一部分而创建的,其 IP 范围恰好与我连接的机器所在的那个重叠。我的同事能够通过关闭 Docker 守护程序并删除由 Docker 创建的指向相关 docker 网络网桥的静态路由来重新获得我的访问权限。他之所以能够做到这一点,是因为他在同一子网中拥有另一台机器,他可以通过该机器进行连接。

现在我遇到的问题是,虽然能够再次连接到服务器,但我无法启动 Docker 守护程序,除非它还恢复了行为不端的网络并再次切断我的连接。但是,我也不能先使用docker network rm或docker network prune删除网络,因为这些命令仅在 Docker 守护程序正在运行时才有效。我无权访问 IP 与所述 IP 范围不冲突且具有访问我要恢复的机器所需的防火墙规则的机器。

有什么方法可以优雅地解决这种情况并让 Docker 守护程序再次运行而不会失去对机器的访问权限?如有必要,删除与所述网络相关的容器是没有问题的。如果我能首先让机器恢复工作状态,我会很高兴。

我从这篇文章中了解到,可以配置 Docker 允许使用的 IP 范围,一旦事情重新启动并运行,我肯定会这样做。这可能已经自行解决了问题,还是只会影响 Docker 未来创建的网络?

linux redhat docker docker-compose docker-networking
  • 1 1 个回答
  • 343 Views

1 个回答

  • Voted
  1. Best Answer
    Martin Wurm
    2021-06-17T02:57:52+08:002021-06-17T02:57:52+08:00

    我找到了一个可以说是非正统的解决方案,但它确实有效:我编写了一个脚本来启动 Docker 守护程序,删除有问题的网络,记录哪些网络被删除,然后再次停止 Docker 守护程序,以防万一它不起作用。这样,即使我的 SSH 会话断开,我也可以让该脚本在后台运行并执行必要的命令。这样我就可以回来,检查日志以查看有问题的网络是否消失,最后再次启动 docker Daemon 而不会被踢出。

    这不是最优雅的脚本,所以我需要做一些清理工作,但 Docker 又开始工作了。

    • 1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve