翼度科技»论坛 云主机 服务器技术 查看内容

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

7

主题

7

帖子

21

积分

新手上路

Rank: 1

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

可以看到监听的是tcp的ipv6的端口,所以需要配置ipv4
  1. [root@zjj101 2m-2s-async]# netstat -ntlp
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
  4. tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1224/mysqld
  5. tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      942/sshd
  6. tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1106/master
  7. tcp6       0      0 :::9876                 :::*                    LISTEN      78614/java
  8. tcp6       0      0 :::22                   :::*                    LISTEN      942/sshd
  9. tcp6       0      0 ::1:25                  :::*                    LISTEN      1106/master
复制代码
修改配置文件
  1. root@zjj101 2m-2s-async]# vi /usr/lib/sysctl.d//00-system.conf
复制代码
00-system.conf 文件添加内容: net.ipv4.ip_forward = 1 ,然后 esc !wq 保存
说明:
  1. net.ipv4.ip_forward
复制代码
等于
  1. 0
复制代码
表示不开启,为
  1. 1
复制代码
表示开启。
00-system.conf 文件内容:
  1. # Kernel sysctl configuration file
  2. #
  3. # For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
  4. # sysctl.conf(5) for more details.

  5. # Disable netfilter on bridges.
  6. net.bridge.bridge-nf-call-ip6tables = 0
  7. net.bridge.bridge-nf-call-iptables = 0
  8. net.bridge.bridge-nf-call-arptables = 0
  9. # 启用ip转发功能
  10. net.ipv4.ip_forward = 1
复制代码
重启网络服务

命令: systemctl restart network
  1. # 重启服务
  2. [root@zjj101 2m-2s-async]# systemctl restart network
  3. # 查看配置是否生效,如果返回为“net.ipv4.ip_forward = 1”则表示成功
  4. [root@zjj101 2m-2s-async]# sysctl net.ipv4.ip_forward
  5. net.ipv4.ip_forward = 1
复制代码
验证效果

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

如果还不能访问怎么办?

重启Docker里面的container
  1. # 查看docker container ,发现两个都是Exited  状态,这不正常,下面开始重启
  2. [root@zjj101 2m-2s-async]# docker ps -a
  3. CONTAINER ID   IMAGE                           COMMAND                  CREATED      STATUS                       PORTS     NAMES
  4. 8910b880038a   styletang/rocketmq-console-ng   "sh -c 'java $JAVA_O…"   2 days ago   Exited (137) 2 minutes ago             gifted_johnson
  5. e827d21c2efe   uifd/ui-for-docker              "/ui-for-docker"         2 days ago   Exited (2) 2 minutes ago               docker-web
  6. # 重启docker CONTAINER ID 为 8910b880038a 的 CONTAINER
  7. [root@zjj101 2m-2s-async]# docker restart 8910b880038a
  8. 8910b880038a
  9. # 重启docker CONTAINER ID 为 e827d21c2efe的 CONTAINER
  10. [root@zjj101 2m-2s-async]# docker restart e827d21c2efe
  11. e827d21c2efe
复制代码
上面步骤做完了,不出意外基本就可以访问了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/server/319040g2j.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具