宿主机无法访问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学习笔记之Weave实现跨主机容器互联

    Docker学习笔记之Weave实现跨主机容器互联

    这篇文章主要介绍了Docker学习笔记之Weave实现跨主机容器互联,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 用Docker搭建nextcloud个人网盘教程

    用Docker搭建nextcloud个人网盘教程

    大家好,本篇文章主要讲的是用Docker搭建nextcloud个人网盘教程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2021-12-12
  • 详解通过docker和docker-compose实现eureka高可用

    详解通过docker和docker-compose实现eureka高可用

    这篇文章主要介绍了详解通过docker和docker-compose实现eureka高可用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Docker Volumn容器间共享数据的实现

    Docker Volumn容器间共享数据的实现

    这篇文章主要介绍了Docker Volumn容器间共享数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Docker 容器连接的具体实现

    Docker 容器连接的具体实现

    本文主要介绍了Docker 容器连接的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Docker容器内存限制的方法

    Docker容器内存限制的方法

    本篇文章主要介绍了Docker容器内存限制的方法,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • 详解Docker下搭建Jenkins构建环境

    详解Docker下搭建Jenkins构建环境

    这篇文章主要介绍了详解Docker下搭建Jenkins构建环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 宝塔创建Docker容器配置nginx的实现步骤

    宝塔创建Docker容器配置nginx的实现步骤

    本文主要介绍了宝塔创建Docker容器配置nginx的实现步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • docker安装logstash的步骤

    docker安装logstash的步骤

    这篇文章主要介绍了docker安装logstash,环境是基于centos7.6操作系统,安装logstash过程给大家讲解的非常详细,需要的朋友可以参考下
    2022-04-04
  • Docker容器数据卷的使用教程

    Docker容器数据卷的使用教程

    数据卷容器是一个专门用来挂载数据卷的容器,该容器主要是供其他容器引用和使用,下面这篇文章主要给大家介绍了关于Docker容器数据卷使用的相关资料,需要的朋友可以参考下
    2022-10-10

最新评论