服务器防火墙 / 安全组开放对应端口。

前置知识

在 Docker 中,容器的数据卷(Volume)默认存储在宿主机的 /var/lib/docker/volumes/ 目录下。

  1. 默认路径结构 每个数据卷会在该目录下生成一个以卷名命名的子目录,例如名为 minio-data 的卷,实际路径为: /var/lib/docker/volumes/minio-data/_data/
    其中 _data 子目录是卷的实际数据存储位置,容器内挂载的路径会映射到这里。

  2. 自定义绑定挂载(Bind Mount) 如果你使用的是 绑定挂载(通过 -v 宿主机路径:容器路径 指定,如 -v /root/minio/data:/data),数据则存储在你手动指定的 **宿主机路径,而非 Docker 默认的 volumes 目录。

  3. 查看卷的实际路径 可通过以下命令查看指定卷的详细信息(包括存储路径): bash docker volume inspect 卷名 输出中 Mountpoint 字段即为该卷在宿主机的实际存储路径。

[
    {
        "CreatedAt": "2025-10-17T14:40:34+08:00",
        "Driver": "local",
        "Labels": {
            "com.docker.compose.project": "dk_portainer",
            "com.docker.compose.version": "2.27.0",
            "com.docker.compose.volume": "portainer_data"
        },
        "Mountpoint": "/var/lib/docker/volumes/dk_portainer_portainer_data/_data",
        "Name": "dk_portainer_portainer_data",
        "Options": null,
        "Scope": "local"
    }
]

总结:

  • Docker 管理的卷(Volume):默认在 /var/lib/docker/volumes/卷名/_data/
  • 手动指定的绑定挂载(Bind Mount):在你指定的宿主机路径(如 /root/minio/data)。

应用程序的默认工作目录
在 -v 宿主机路径:容器内路径 中,容器内路径是容器内部程序约定或需要使用的目录路径,通常由容器运行的应用程序决定,具体来源有两种:
很多镜像在构建时,会预先定义程序运行所需的目录(如数据存储、配置文件存放的路径),这些路径是应用程序自身约定的。例如: MinIO
容器默认将数据存储在 /data 目录(这是 MinIO 程序的设计约定),所以挂载时容器内路径需指定为
/data,否则程序找不到数据存储位置。 MySQL 容器默认数据目录是 /var/lib/mysql,配置文件目录是
/etc/mysql,这些都是 MySQL 程序的默认路径。

rabbitmq

Web 管理端口(15672)和 AMQP 通信端口(5672,程序连接用)

# 启动时指定端口映射(若未映射,需重新启动容器)
docker run -d \
  --name rabbitmq \
  -p 15672:15672 \  # Web 管理端口(浏览器访问)  //需要启动web插件
  -p 5672:5672 \    # AMQP 端口(程序代码连接)
  rabbitmq:3-management  # 带 management 插件的镜像(无需手动启用插件)

Swagger UI 界面

http://127.0.0.1:【应用启动端口】/swagger-ui.html#/user-controller

minio

mkdir -p ~/minio/data

docker run -d\
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio \
  -v /root/minio/data:/data \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  quay.io/minio/minio server /data --console-address ":9001" --address ":9000"

mysql 8

docker run -d \
  -p 3306:3306 \
  --name My-mysql8 \
  -v mysql8-data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_USER=appuser \
  -e MYSQL_PASSWORD=123456 \
  -e MYSQL_DATABASE=exam_system \
  mysql:8.0

mysql 5

docker run -d \
  -p 3306:3306 \
  --name My-mysql57 \
  -v mysql57-data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_USER=appuser \
  -e MYSQL_PASSWORD=123456 \
  -e MYSQL_DATABASE=exam_system \
  mysql:5.7

redis

Redis 需开放端口总结表

端口类型默认端口核心用途开放场景与说明
基础通信端口6379客户端(如 redis-cli、应用)与 Redis 服务通信1. 本地访问:确保容器/服务器内部可达(如 Docker 端口映射);
2. 远程访问:需开放服务器防火墙/安全组
哨兵(Sentinel)端口263791. 哨兵节点间同步集群状态;
2. 客户端通过哨兵发现主节点
哨兵模式 需开放,需确保哨兵节点间、客户端与哨兵间可通信
Redis Cluster 集群总线端口服务端口+10000(如 6379→16379)集群节点间握手、数据迁移、故障检测Redis Cluster 集群 需开放,需与服务端口(如 6379)同时开放
主从复制端口同基础通信端口(6379)主从节点间数据同步无需额外开放新端口,确保主从节点通过 6379 端口互通即可
docker run \
  -p 6379:6379 \
  --name My-redis\
  --privileged=true \
  -v /etc/redis/redis.conf \
  -v /data \
  -d \
  redis:6.0.8 \
  redis-server /etc/redis/redis.conf

## mongo

```bash
docker run -d \
  --name my-mongo \  # 容器名(自定义,如 my-mongo)
  -p 27017:27017 \   # 端口映射:宿主机 27017 → 容器 27017(MongoDB 默认端口)
  -v /root/mongo/data:/data/db \  # 挂载数据目录:宿主机 /root/mongo/data 存数据,避免丢失
  -v /root/mongo/config:/data/configdb \  # 挂载配置目录(可选,需自定义配置时用)
  -e MONGO_INITDB_ROOT_USERNAME=admin \  # 初始化 root 用户名(自定义,如 admin)
  -e MONGO_INITDB_ROOT_PASSWORD=123456 \  # 初始化 root 密码(自定义,建议复杂密码)
  mongo  # 镜像名(若指定版本,此处为 mongo:7.0)

在 Java Spring Boot 开发中,端口分为 Spring Boot 应用本身的端口常用中间件的默认端口

一、Spring Boot 应用本身的端口

Spring Boot 应用默认使用 8080 端口(HTTP 协议),可通过配置文件修改。不同场景下的常用端口及配置方式如下:

端口类型默认端口用途说明配置方式(application.yml/application.properties)
HTTP 端口8080普通 HTTP 服务(开发环境默认,无加密)server.port=8080(properties)
server: port: 8080(yml)
HTTPS 端口443加密 HTTPS 服务(生产环境常用,需配置证书)server.ssl.key-store=xxx.jks
server.port=443
管理端口(Actuator)8080(同应用端口)监控应用健康状态、 metrics 等(若独立配置,避免占用业务端口)management.server.port=8081
调试端口(Remote Debug)5005远程调试 Spring Boot 应用(开发环境用,通过 IDE 连接)JVM 参数:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

二、常用中间件的默认端口(开发必用)

Spring Boot 项目常集成各类中间件(数据库、消息队列、缓存等),需熟记其默认端口,避免与应用端口冲突。

1. 数据库类
中间件默认端口用途说明常见配置(Spring Boot 连接)
MySQL3306关系型数据库(开发首选)spring.datasource.url=jdbc:mysql://localhost:3306/db
PostgreSQL5432开源关系型数据库(支持复杂查询)spring.datasource.url=jdbc:postgresql://localhost:5432/db
Oracle1521企业级关系型数据库spring.datasource.url=jdbc:oracle:thin:@localhost:1521:ORCL
SQL Server1433微软关系型数据库spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=db
2. 缓存类
中间件默认端口用途说明常见配置(Spring Boot 连接)
Redis6379内存缓存(缓存、分布式锁)spring.redis.host=localhost
spring.redis.port=6379
Redis(集群)6379(各节点)Redis 集群节点端口需配置所有节点地址,如 spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.1:6380
Memcached11211老牌内存缓存(较少用)需引入第三方依赖(如 spymemcached),配置端口 11211
3. 消息队列类
中间件默认端口(核心)用途说明常见配置(Spring Boot 连接)
RabbitMQ5672(AMQP 协议)消息队列(解耦、削峰)spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
RabbitMQ Web 管理15672RabbitMQ 可视化管理界面浏览器访问:http://localhost:15672
Kafka9092(Broker 端口)高吞吐消息队列(大数据场景)spring.kafka.bootstrap-servers=localhost:9092
Kafka 集群9092(各 Broker)Kafka 集群 Broker 端口配置多个 Broker 地址,如 localhost:9092,localhost:9093
RocketMQ9876(NameServer)阿里开源消息队列(企业级)rocketmq.name-server=localhost:9876
4. 服务注册/配置中心类
中间件默认端口用途说明常见配置(Spring Boot 连接)
Nacos8848(服务端)服务注册发现 + 配置中心(阿里)spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.cloud.nacos.config.server-addr=localhost:8848
Eureka8761(服务端)服务注册发现(Spring Cloud 早期)eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
Apollo(配置中心)8070(Portal)、8080(Config Service)携程开源配置中心(企业级)apollo.meta=http://localhost:8080
5. API 文档/监控类
工具默认端口用途说明访问路径
Swagger 2同应用端口(如 8080)API 文档生成工具(OpenAPI 2.0)http://localhost:8080/swagger-ui.html
Knife4j(Swagger 增强)同应用端口美化版 Swagger(支持导出)http://localhost:8080/doc.html
SpringDoc(OpenAPI 3)同应用端口OpenAPI 3.0 规范文档工具http://localhost:8080/swagger-ui/index.html
Prometheus9090监控指标采集(搭配 Grafana)浏览器访问:http://localhost:9090(查看监控数据)
Grafana3000监控图表可视化(对接 Prometheus)浏览器访问:http://localhost:3000(默认账号 admin/admin)
6. 其他常用中间件
中间件默认端口用途说明备注
Elasticsearch9200(HTTP 端口)、9300(TCP 端口)搜索引擎(日志、全文检索)访问 HTTP 端口:http://localhost:9200(查看集群状态)
Zookeeper2181分布式协调(Kafka、Hadoop 依赖)spring.cloud.zookeeper.connect-string=localhost:2181
MinIO9000对象存储(替代 S3,开发用)浏览器访问:http://localhost:9000(管理界面)

三、端口配置注意事项

  1. 避免端口冲突:开发环境中,若多个应用/中间件运行在同一台机器,需确保端口不重复(如 Spring Boot 应用用 8080,另一个用 8081);
  2. 生产环境端口规范:生产环境建议避免使用默认端口(减少被攻击风险),如 MySQL 改为 3307,Redis 改为 6380;
  3. 端口开放:若中间件部署在远程服务器,需在服务器防火墙/安全组中开放对应端口(如 Redis 6379、RabbitMQ 5672);
  4. 配置优先级:Spring Boot 端口配置优先级:命令行参数(java -jar app.jar --server.port=8081)> 环境变量 > 配置文件。

四、常用端口速查表格

类别中间件/应用默认端口核心用途
应用端口Spring Boot HTTP8080应用服务端口
数据库MySQL3306关系型数据库
缓存Redis6379内存缓存
消息队列RabbitMQ(AMQP)5672消息通信
服务注册Nacos8848服务发现 + 配置中心
API 文档Swagger 28080(同应用)API 文档访问
监控Grafana3000监控图表可视化
搜索引擎Elasticsearch9200全文检索

熟记这些端口可大幅提升开发效率,避免因端口配置问题浪费时间。

以下是开发中常用中间件的 Web UI 界面访问路径,包含详细的默认地址、端口说明及访问示例,方便开发调试:

一、服务注册与配置中心

中间件Web UI 访问路径默认端口访问示例(本地)备注
Nacoshttp://{ip}:{port}/nacos8848http://localhost:8848/nacos账号密码默认 nacos/nacos
Eurekahttp://{ip}:{port}/8761http://localhost:8761/无需登录,直接显示服务列表
Apollo Portalhttp://{ip}:{port}8070http://localhost:8070账号密码默认 apollo/admin
Spring Cloud Config Server无专用 UI(需通过接口访问配置)8888http://localhost:8888/application-dev.yml通过 HTTP 接口查看配置文件

二、消息队列

中间件Web UI 访问路径默认端口访问示例(本地)备注
RabbitMQhttp://{ip}:{port}/15672http://localhost:15672/账号密码默认 guest/guest(仅本地可用,远程需新建用户)
Kafka Manager(第三方工具)http://{ip}:{port}9000http://localhost:9000需单独部署,用于管理 Kafka 集群
RocketMQ Dashboardhttp://{ip}:{port}8080http://localhost:8080官方可视化工具,需单独启动

三、缓存与数据库

中间件Web UI 访问路径默认端口访问示例(本地)备注
Redis Insight(Redis 官方 UI)http://{ip}:{port}8001http://localhost:8001需单独安装,支持 Redis 集群管理
Redis Commander(第三方)http://{ip}:{port}8081http://localhost:8081轻量 Redis 可视化工具,需 npm 安装
MySQL Workbench(客户端,非 Web)无 Web 路径,需安装客户端软件3306客户端连接 localhost:3306官方 GUI 工具,支持 SQL 可视化操作
pgAdmin(PostgreSQL UI)http://{ip}:{port}5050http://localhost:5050需单独部署,PostgreSQL 官方管理工具

四、监控与日志

工具Web UI 访问路径默认端口访问示例(本地)备注
Grafanahttp://{ip}:{port}3000http://localhost:3000账号密码默认 admin/admin(首次登录需修改)
Prometheushttp://{ip}:{port}9090http://localhost:9090查看监控指标和配置,无复杂 UI
Kibanahttp://{ip}:{port}5601http://localhost:5601Elasticsearch 配套日志可视化工具
Spring Boot Actuator(监控端点)http://{ip}:{port}/actuator8080(同应用)http://localhost:8080/actuator/health需在 Spring Boot 中配置开启(默认仅暴露 health 端点)

五、API 文档与接口测试

工具Web UI 访问路径默认端口访问示例(本地)备注
Swagger 2http://{ip}:{port}/swagger-ui.html8080(同应用)http://localhost:8080/swagger-ui.htmlSpring Boot 集成后直接访问
Knife4j(Swagger 增强)http://{ip}:{port}/doc.html8080(同应用)http://localhost:8080/doc.html美化版 Swagger,支持导出文档
SpringDoc(OpenAPI 3)http://{ip}:{port}/swagger-ui/index.html8080(同应用)http://localhost:8080/swagger-ui/index.html支持 OpenAPI 3.0 规范
Postman(客户端,非 Web)无 Web 路径,需安装客户端软件-客户端直接使用接口测试工具,支持批量请求和环境配置

六、对象存储与其他工具

工具Web UI 访问路径默认端口访问示例(本地)备注
MinIOhttp://{ip}:{port}9000http://localhost:9000账号密码默认 minioadmin/minioadmin
Docker Dashboardhttp://{ip}:{port}(需启用远程 API)2375http://localhost:2375默认关闭,需配置 Docker 远程访问
Jenkinshttp://{ip}:{port}8080http://localhost:8080首次登录需输入初始密码(查看容器日志或文件)

访问注意事项

  1. 路径区分大小写:部分工具的路径严格区分大小写(如 Swagger 的 swagger-ui.html 不可写成大写);
  2. 上下文路径配置:若中间件或应用配置了 context-path(上下文路径),需在端口后添加,例如:
    • Spring Boot 应用配置 server.servlet.context-path=/api,则 Swagger 路径为 http://localhost:8080/api/swagger-ui.html
  3. 远程访问:访问远程服务器的 Web UI 时,需将 localhost 替换为服务器 IP,例如 http://192.168.1.100:15672(RabbitMQ 远程访问);
  4. 端口映射:Docker 部署的中间件,需确保端口已映射到宿主机(如 docker run -p 15672:15672 rabbitmq:3-management),否则无法通过宿主机 IP 访问。

通过以上路径,可快速访问各工具的 Web 界面,方便开发中的配置管理、监控和调试。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐