当前位置: 代码网 > 服务器>服务器>云虚拟主机 > 解决虚拟机挂起后再恢复后Docker部署的应用无法连接问题

解决虚拟机挂起后再恢复后Docker部署的应用无法连接问题

2024年05月14日 云虚拟主机 我要评论
使用netstat -ntlp命令查看端口状态可以看到监听的是tcp的ipv6的端口,所以需要配置ipv4[root@zjj101 2m-2s-async]# netstat -ntlpactive

使用netstat -ntlp命令查看端口状态

可以看到监听的是tcp的ipv6的端口,所以需要配置ipv4

[root@zjj101 2m-2s-async]# netstat -ntlp
active internet connections (only servers)
proto recv-q send-q local address           foreign address         state       pid/program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               listen      1224/mysqld
tcp        0      0 0.0.0.0:22              0.0.0.0:*               listen      942/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               listen      1106/master
tcp6       0      0 :::9876                 :::*                    listen      78614/java
tcp6       0      0 :::22                   :::*                    listen      942/sshd
tcp6       0      0 ::1:25                  :::*                    listen      1106/master

修改配置文件

root@zjj101 2m-2s-async]# vi /usr/lib/sysctl.d//00-system.conf

00-system.conf 文件添加内容: net.ipv4.ip_forward = 1 ,然后 esc !wq 保存

说明:

net.ipv4.ip_forward 等于0表示不开启,为1表示开启。

00-system.conf 文件内容:

# kernel sysctl configuration file
#
# for binary values, 0 is disabled, 1 is enabled.  see sysctl(8) and
# sysctl.conf(5) for more details.

# disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
# 启用ip转发功能
net.ipv4.ip_forward = 1

重启网络服务

命令: systemctl restart network

# 重启服务
[root@zjj101 2m-2s-async]# systemctl restart network
# 查看配置是否生效,如果返回为“net.ipv4.ip_forward = 1”则表示成功
[root@zjj101 2m-2s-async]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

验证效果

此时访问一下,我这边发现可以访问了,即使 虚拟机再次挂起,再恢复,也能访问了

如果还不能访问怎么办?

重启docker里面的container

# 查看docker container ,发现两个都是exited  状态,这不正常,下面开始重启
[root@zjj101 2m-2s-async]# docker ps -a
container id   image                           command                  created      status                       ports     names
8910b880038a   styletang/rocketmq-console-ng   "sh -c 'java $java_o…"   2 days ago   exited (137) 2 minutes ago             gifted_johnson
e827d21c2efe   uifd/ui-for-docker              "/ui-for-docker"         2 days ago   exited (2) 2 minutes ago               docker-web
# 重启docker container id 为 8910b880038a 的 container 
[root@zjj101 2m-2s-async]# docker restart 8910b880038a
8910b880038a
# 重启docker container id 为 e827d21c2efe的 container
[root@zjj101 2m-2s-async]# docker restart e827d21c2efe
e827d21c2efe

上面步骤做完了,不出意外基本就可以访问了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com