首页 > 其他分享 >Docker 因端口映射不一致出现的问题

Docker 因端口映射不一致出现的问题

时间:2024-07-11 11:08:19浏览次数:9  
标签:index conf 端口 nginx html 一致 Docker 80 端口映射

问题描述

因为服务器原先已经安装了nginx(非容器安装),并且占用80端口;

而我方习惯使用容器进行安装应用,故用安装了一个容器ngixn;

docker-compose.yml

version: '3'
services:
  nginx:
    restart: always
    container_name: nginx
    image: nginx
    ports:
      - 81:80
      - 443:443
    volumes:
      - /data/nginx/html:/usr/share/nginx/html
      - /data/nginx/logs:/var/log/nginx
      - /data/nginx/nginx.conf/:/etc/nginx/nginx.conf
      - /data/nginx/etc/cert:/etc/nginx/cert
      - /data/nginx/conf.d:/etc/nginx/conf.d
    environment:
      - TZ=Asia/Shanghai
    privileged: true

default.conf

server{
       listen 80;
       server_name localhost;
       charset utf-8;

       location /test {
          root   /usr/share/nginx/html;
          index  index.html index.htm;
       }



       location / {
          root   /usr/share/nginx/html;
          index  ./bdcloud/index.html ./bdcloud/index.htm;
       }

       error_page   500 502 503 504  /50x.html;
       location = /50x.html {
           root   html;
       }
    }

 

此时我的前端服务应该都从81进入,然后交由nginx的80端口进行处理;

但此时发现在前端的登录页面总是会自动跳转到80端口,导致无法通过81端口进入nginx容器

 

问题定位

因为nginx容器内部是通过80端口进行监听的,导致在跳转前端首页时直接携带了此时的80端口,而nginx容器本身是通过81端口进行监听的,从而发生了冲突;

 

解决方案

尽量docker容器的映射端口保持一致

docker-compose.yml

 default.conf

 

标签:index,conf,端口,nginx,html,一致,Docker,80,端口映射
From: https://www.cnblogs.com/ReturnOfTheKing/p/18295604

相关文章

  • Kubernetes高可用集群二进制离线部署(Runtime Docker)
    Kubernetes高可用集群二进制部署(RuntimeDocker)Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了资源调度、部署管理、服务......
  • Docker:docker部署Minio服务并创建访问密钥
    前言Minio是一个基于ApacheLicensev2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等;最重......
  • Docker入门(三):nodejs后端服务部署
    本文主要内容是通过dockerfile创建镜像,并通过kubernets(简称k8s)来启动集群服务。最后你会得到一个简单的nodejs提供的api服务。写在前面需要安装的有node(如何安装?),kubectl(如何安装?)一,创建nodejs应用本文主要是用于实践k8s,所以nodejs项目写的非常简单,除了package*.json之外只......
  • docker部署若依开源java项目微服务版
    查看容器IDdockerps 后面以进入mysql容器为例进入容器sudodockerexec-it27e/bin/bash 进入成功,由于是mgsql容器,我们可以输入命令操作看一下mysql文件夹,如下看到了我们建的数据库:退出容器回到centosexit......
  • Dockerfile构建前后端分离项目
    【Dockerfile构建前后端分离项目】1.创建专用网络dockernetworkcreateappnet2.构建MYSOL服务器镜像2.1.准备工作创建专用目录mkdirapp/db-p获取配置文件#创建一个存放数据库配置文件的文件夹cdapp/db#创建临时mysql容器,目的是将里面的配置文件拷贝出来......
  • windows下使用dockerdesktop进行部署
    Docker部署springboot项目环境准备要在windows上使用docker需要确认系统的需求需要启用虚拟化支持的CPU启用适用于windows的Linux子系统功能保证足够的内存下载dockerdesktop下载后会提示安装对应的环境坑点安装过程中需要安装wsl环境,会遇到0x80370102问题。根据......
  • Docker核心知识手册
    Docker核心知识手册文章目录Docker核心知识手册1安装Docker1.1环境说明1.2安装1.3修改配置1.4启动2Docker基础命令2.1查看Docker相关信息2.2配置Docker镜像加速3Docker镜像相关命令3.1搜索官方镜像3.2获取镜像3.3查看当前主机镜像列表3.4导出镜像3.5删......
  • MySQL和Redis更新一致性问题
    1.先更新数据库,再更新缓存适用场景:适用于对数据一致性要求不是特别高,且缓存更新失败对系统影响较小的场景。例如,某些非关键数据的缓存更新。风险:如果缓存更新失败,会导致数据库和缓存数据不一致。//更新数据库updateMySQL(data);//更新缓存updateRedis(data);2......
  • docker指定容器抓包
    服务端开发时,有的时候不方便断点调试,只能进行抓包确认问题。如果是服务器安装了多个docker,会导致网络非常复杂,需要直接对container抓包,便于跟踪问题。确定container对应的网卡方法如下进入容器dockerexec-ti<containerid>执行命令cat/sys/class/net/eth0/iflin......
  • Docker-搭建部署Jenkins(保姆篇)
    文章目录Jenkins部署拉取镜像启动容器查看初始密码关闭CSRFJenkins页面使用解决插件下载缓慢访问jenkins页面推荐插件安装创建一个管理员账号实例配置页面展示更多相关内容可查看Jenkins部署拉取镜像如果想拉取对应版本请指明版本号dockerpulljenkins/jenki......