启动Docker后ssh连接自动断开且无法连接

CentOS7.9在启动Docker之后现卡死,ssh远程连接(XShell)自动断开且无法再次连接,仅重启后方能连接,但启动Docker之后依旧出现前面的相同情况的问题解决方案

1、问题描述

CentOS环境启动Docker后卡住,此后会发现ssh远程连接被断开,且此后无法连接服务器。

具体情况如下图:

必须直接登录环境后,重启才能正常连接ssh。

但是一旦启动Docker还是会出现相同情况。

Docker默认使用Bridge桥接模式,其本质类似于NAT。

 

通过ip addr查看宿主机IP为192.168.1.33

Docker创建了一个虚拟网络桥连,使用了192.168.1.35。

由于Docker的桥接网段和宿主机在一个网段,导致XShell进行ssh访问192.168.1.33直接找到了Docker的网桥IP(192.168.1.35)。

而网桥IP(192.168.1.35)仅有宿主机可以访问,就导致XShell无法进行ssh连接了。

修改Docker桥接绑定的ip,使其与宿主机IP不再同一个网段。

环境上不一定有这个文件,没有直接vi编辑保存新增即可。

{
    "bip": "172.16.0.1/12"
}
# 加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker
vi /etc/default/docker
# 新增或修改
DOCKER_OPTS="--bip=172.16.0.1/12"
# 编辑服务配置
vi /etc/systemd/system/docker.service
# 如果docker.service文件不存在,则看 /lib/systemd/system/docker.service
# 增加生效配置
EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/dockerd  $DOCKER_OPTS
# 重启Docker
systemctl restart docker

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个可以直接启动 SSH 远程服务的 Dockerfile: ``` FROM ubuntu:latest # 安装必要软件 RUN apt-get update && \ apt-get install -y openssh-server # 配置 SSH 服务 RUN mkdir /var/run/sshd && \ sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \ echo "root:password" | chpasswd && \ ssh-keygen -A # 添加启动脚本 COPY start.sh /start.sh RUN chmod +x /start.sh # 暴露 SSH 端口 EXPOSE 22 # 定义启动命令 CMD ["/start.sh"] ``` 在此 Dockerfile 中,我们使用 `ubuntu:latest` 作为基础镜像,然后安装了 `openssh-server` 软件包。接着,我们配置了 SSH 服务,包括启用 root 登录、设置 root 用户密码和生成 SSH 密钥等。 然后,我们将启动脚本 `start.sh` 添加到镜像中,并给它添加了可执行权限。在启动脚本中,我们使用 `/usr/sbin/sshd -D` 命令来启动 SSH 服务,并让它在前台运行。 最后,我们使用 `EXPOSE` 命令暴露了 SSH 服务的默认端口 `22`,并使用 `CMD` 命令定义了容器启动后要执行的命令,即运行启动脚本 `/start.sh`。 以下是 `start.sh` 启动脚本的内容: ``` #!/bin/bash /usr/sbin/sshd -D ``` 这个脚本很简单,只有一行命令,即启动 SSH 服务并让它在前台运行。你可以将此脚本保存为 `start.sh` 文件并与 Dockerfile 放在同一目录下。 构建镜像时,可以使用以下命令: ``` docker build -t ssh-server . ``` 运行容器时,可以使用以下命令: ``` docker run -d -p 2222:22 --name ssh-server ssh-server ``` 这将在后台启动一个名为 `ssh-server` 的容器,并将容器的 SSH 端口映射到主机的 `2222` 端口上。现在,你可以使用 SSH 客户端连接到容器并进行远程管理了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值