宿主机无法访问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服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • dockerfile构建任意java镜像的实现示例

    dockerfile构建任意java镜像的实现示例

    本文主要介绍了dockerfile构建任意java镜像的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • Windows Docker部署Kong网关的实现步骤

    Windows Docker部署Kong网关的实现步骤

    Kong是一个轻量级、快速、灵活的云原生API网关,本文主要介绍了Windows Docker部署Kong网关的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Docker 容器中安装 nvm工具的步骤

    Docker 容器中安装 nvm工具的步骤

    这篇文章主要介绍了在Docker容器中安装nvm工具的步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 使用Docker部署前端和后端项目的完整教程

    使用Docker部署前端和后端项目的完整教程

    使用Docker部署项目可以实现快速、一致和可重复的部署流程,下面这篇文章主要介绍了使用Docker部署前端和后端项目的完整教程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-02-02
  • 如何免sudo使用docker命令详解

    如何免sudo使用docker命令详解

    有时候发现docker有的指令必须加sudo才能执行,下面这篇文章主要给大家介绍了关于如何免sudo使用docker命令的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧。
    2017-12-12
  • docker容器间进行数据共享的三种实现方式

    docker容器间进行数据共享的三种实现方式

    本文主要介绍了docker容器间进行数据共享的三种实现方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 如何在 Ubuntu 下通过 Docker 部署 Caddy 服务器

    如何在 Ubuntu 下通过 Docker 部署 Caddy 

    本文介绍了如何在Ubuntu系统下通过Docker部署Caddy服务器,首先安装Docker,然后启动Docker服务并设置为开机自启,接着拉取Caddy镜像,并创建一个Caddyfile配置文件,使用命令运行Caddy容器,并将本地的Caddyfile挂载到容器内,感兴趣的朋友跟随小编一起看看吧
    2025-03-03
  • docker 搭建svn服务器的教程

    docker 搭建svn服务器的教程

    这篇文章主要介绍了docker 搭建svn服务器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Docker与Kubernetes部署实战之云原生应用交付

    Docker与Kubernetes部署实战之云原生应用交付

    Docker与Kubernetes是当今云原生应用开发与运维体系中最为关键的两大基础设施技术,尤其对Java开发者而言,这篇文章主要介绍了Docker与Kubernetes部署实战之云原生应用交付的相关资料,需要的朋友可以参考下
    2026-04-04
  • docker nginx 运行后无法访问的问题解决

    docker nginx 运行后无法访问的问题解决

    这篇文章主要介绍了docker nginx 运行后无法访问的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09

最新评论