宿主机无法访问docker容器中nginx服务的问题解决

 更新时间:2024年11月10日 15:21:02   作者:伟伟未玩  
在虚拟机中部署Docker并安装Nginx后,宿主机无法访问容器内的Nginx服务,通过检查端口映射、防火墙状态、进入容器内部启动Nginx以及检查/修改内核的IP转发设置,解决了该问题,感兴趣的可以了解一下

1.问题描述

在虚拟机中,部署好docker服务,并且安装了nginx。启动之后,宿主机无发访问容器中的nginx服务,一直转圈圈,但是虚拟机中使用 curl [虚拟机ip] 就可以访问到nginx的启动成功页面。

宿主机无法访问容器中的nginx

在这里插入图片描述

2.问题解决

2.1查看端口号是否映射正确

这里Nginx是主机80端口映射到docker中的80端口

在这里插入图片描述

2.2检查防火墙状态

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

2.3需要进入docker下正在运行中的nginx容器内部启动nginx

[root@localhost ~]# docker exec -it nginx bash
root@6fe8ede3eab4:/# service nginx start
root@6fe8ede3eab4:/# service nginx status
nginx is running.

2.4访问成功

在这里插入图片描述

2.5如果还没有访问成功,有可能你在内核优化的时候 禁止ip转发功能了

  • Linux 默认情况下是不开启 ip 转发功能的,与docker无关。
  • 查看是否开启转发:执行以下命令,结果0为未开启,1为开启
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward 
0
  • 配置linux内核允许转发
[root@localhost ~]# sysctl net.ipv4.conf.all.forwarding=1
net.ipv4.conf.all.forwarding = 1

这个允许ip转发只是暂时的,重启虚拟机后会失效

永久修改方法

[root@localhost ~]# vim /etc/sysctl.conf

找到 net.ipv4.conf.all.forwarding = 0  把0修改成1即可
vim模式下 :/net.ipv4.ip_forward

[root@localhost ~]# sysctl -p /etc/sysctl.conf
-----
[root@localhost ~]# systemctl restart network 

之后你会神奇的发现宿主机可以访问了!

在这里插入图片描述

到此这篇关于宿主机无法访问docker容器中nginx服务的问题解决的文章就介绍到这了,更多相关docker宿主机无法访问nginx服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Docker核心原理之 Cgroup详解

    Docker核心原理之 Cgroup详解

    cgroup的内核通过hook钩子来实现管理进程资源,提供了一个统一的接口,从单个进程的资源控制到操作系统层面的虚拟卡的过渡,今天通过本文给大家介绍Docker核心原理之 Cgroup详解,需要的朋友参考下吧
    2021-07-07
  • docker中的link和network网络互连问题

    docker中的link和network网络互连问题

    这篇文章主要介绍了docker中的link和network网络互连问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • DockerCE之执行docker info出现两条警告信息及解决方案

    DockerCE之执行docker info出现两条警告信息及解决方案

    这篇文章主要介绍了DockerCE之执行docker info出现两条警告信息及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 完美卸载Docker的详细步骤

    完美卸载Docker的详细步骤

    Docker是一种流行的容器化平台,但是有时候我们可能需要卸载Docker,无论是因为需要重新安装版本,还是因为不再需要使用Docker,无论何种原因,正确地卸载Docker是很重要的,以确保系统的干净和稳定,下面跟大家详细介绍如何彻底卸载Docker的方法,让你能够轻松地清理干净
    2023-11-11
  • Docker部署Mysql8.0.20并配置主从复制的实现步骤

    Docker部署Mysql8.0.20并配置主从复制的实现步骤

    主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点,本文主要介绍了Docker部署Mysql8.0.20并配置主从复制的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • Docker创建MySQL容器的方法

    Docker创建MySQL容器的方法

    本篇文章主要介绍了Docker创建MySQL容器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Docker部署多种容器的详细过程

    Docker部署多种容器的详细过程

    本文介绍了在Windows和Linux系统上使用Docker部署MySQL和RabbitMQ容器的方法,对于MySQL使用docker run命令,配置了端口映射、权限、时区和数据持久化等选项,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-01-01
  • Vue.js中的watch属性详解

    Vue.js中的watch属性详解

    在Vue.js中,watch属性是一种非常重要的属性,它可以监听Vue实例中指定的数据变化,并在数据发生变化时执行相应的操作,本文将对 Vue.js中的watch属性进行详细的介绍,并附上相关的代码示例,需要的朋友可以参考下
    2023-06-06
  • 如何连接docker中的MySQL容器

    如何连接docker中的MySQL容器

    这篇文章主要介绍了如何连接docker中的MySQL容器问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Docker如何解决tomcat容器启动成功,无法访问的问题

    Docker如何解决tomcat容器启动成功,无法访问的问题

    这篇文章主要介绍了Docker如何解决tomcat容器启动成功,无法访问的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论