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

目录
文章目录隐藏
  1. 使用 netstat -ntlp 命令查看端口状态
  2. 修改配置文件
  3. 重启网络服务
  4. 验证效果

本文主要讲解关于解决虚拟机挂起后再恢复后 Docker 部署的应用无法连接问题,具有很好的参考价值,希望对大家有所帮助。

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

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

[root@lt101 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@lt101 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@lt101 2m-2s-async]# systemctl restart network
# 查看配置是否生效,如果返回为“net.ipv4.ip_forward = 1”则表示成功
[root@lt101 2m-2s-async]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

验证效果

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

如果还不能访问怎么办?

重启 Docker 里面的 container

# 查看 docker container ,发现两个都是 Exited  状态,这不正常,下面开始重启
[root@lt101 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@lt101 2m-2s-async]# docker restart 8910b880038a
8910b880038a
# 重启 docker CONTAINER ID 为 e827d21c2efe 的 CONTAINER
[root@lt101 2m-2s-async]# docker restart e827d21c2efe
e827d21c2efe

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

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 解决虚拟机挂起后再恢复后Docker部署的应用无法连接问题

发表回复