Docker部署常用软件,开放对应端口
服务器防火墙 / 安全组开放对应端口。
前置知识
在 Docker 中,容器的数据卷(Volume)默认存储在宿主机的
/var/lib/docker/volumes/目录下。
默认路径结构 每个数据卷会在该目录下生成一个以卷名命名的子目录,例如名为
minio-data的卷,实际路径为:/var/lib/docker/volumes/minio-data/_data/
其中_data子目录是卷的实际数据存储位置,容器内挂载的路径会映射到这里。自定义绑定挂载(Bind Mount) 如果你使用的是 绑定挂载(通过
-v 宿主机路径:容器路径指定,如-v /root/minio/data:/data),数据则存储在你手动指定的 **宿主机路径,而非 Docker 默认的volumes目录。查看卷的实际路径 可通过以下命令查看指定卷的详细信息(包括存储路径):
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)端口 | 26379 | 1. 哨兵节点间同步集群状态; 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.jksserver.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 连接) |
|---|---|---|---|
| MySQL | 3306 | 关系型数据库(开发首选) | spring.datasource.url=jdbc:mysql://localhost:3306/db |
| PostgreSQL | 5432 | 开源关系型数据库(支持复杂查询) | spring.datasource.url=jdbc:postgresql://localhost:5432/db |
| Oracle | 1521 | 企业级关系型数据库 | spring.datasource.url=jdbc:oracle:thin:@localhost:1521:ORCL |
| SQL Server | 1433 | 微软关系型数据库 | spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=db |
2. 缓存类
| 中间件 | 默认端口 | 用途说明 | 常见配置(Spring Boot 连接) |
|---|---|---|---|
| Redis | 6379 | 内存缓存(缓存、分布式锁) | spring.redis.host=localhostspring.redis.port=6379 |
| Redis(集群) | 6379(各节点) | Redis 集群节点端口 | 需配置所有节点地址,如 spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.1:6380 |
| Memcached | 11211 | 老牌内存缓存(较少用) | 需引入第三方依赖(如 spymemcached),配置端口 11211 |
3. 消息队列类
| 中间件 | 默认端口(核心) | 用途说明 | 常见配置(Spring Boot 连接) |
|---|---|---|---|
| RabbitMQ | 5672(AMQP 协议) | 消息队列(解耦、削峰) | spring.rabbitmq.host=localhostspring.rabbitmq.port=5672 |
| RabbitMQ Web 管理 | 15672 | RabbitMQ 可视化管理界面 | 浏览器访问:http://localhost:15672 |
| Kafka | 9092(Broker 端口) | 高吞吐消息队列(大数据场景) | spring.kafka.bootstrap-servers=localhost:9092 |
| Kafka 集群 | 9092(各 Broker) | Kafka 集群 Broker 端口 | 配置多个 Broker 地址,如 localhost:9092,localhost:9093 |
| RocketMQ | 9876(NameServer) | 阿里开源消息队列(企业级) | rocketmq.name-server=localhost:9876 |
4. 服务注册/配置中心类
| 中间件 | 默认端口 | 用途说明 | 常见配置(Spring Boot 连接) |
|---|---|---|---|
| Nacos | 8848(服务端) | 服务注册发现 + 配置中心(阿里) | spring.cloud.nacos.discovery.server-addr=localhost:8848spring.cloud.nacos.config.server-addr=localhost:8848 |
| Eureka | 8761(服务端) | 服务注册发现(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 |
| Prometheus | 9090 | 监控指标采集(搭配 Grafana) | 浏览器访问:http://localhost:9090(查看监控数据) |
| Grafana | 3000 | 监控图表可视化(对接 Prometheus) | 浏览器访问:http://localhost:3000(默认账号 admin/admin) |
6. 其他常用中间件
| 中间件 | 默认端口 | 用途说明 | 备注 |
|---|---|---|---|
| Elasticsearch | 9200(HTTP 端口)、9300(TCP 端口) | 搜索引擎(日志、全文检索) | 访问 HTTP 端口:http://localhost:9200(查看集群状态) |
| Zookeeper | 2181 | 分布式协调(Kafka、Hadoop 依赖) | spring.cloud.zookeeper.connect-string=localhost:2181 |
| MinIO | 9000 | 对象存储(替代 S3,开发用) | 浏览器访问:http://localhost:9000(管理界面) |
三、端口配置注意事项
- 避免端口冲突:开发环境中,若多个应用/中间件运行在同一台机器,需确保端口不重复(如 Spring Boot 应用用 8080,另一个用 8081);
- 生产环境端口规范:生产环境建议避免使用默认端口(减少被攻击风险),如 MySQL 改为 3307,Redis 改为 6380;
- 端口开放:若中间件部署在远程服务器,需在服务器防火墙/安全组中开放对应端口(如 Redis 6379、RabbitMQ 5672);
- 配置优先级:Spring Boot 端口配置优先级:命令行参数(
java -jar app.jar --server.port=8081)> 环境变量 > 配置文件。
四、常用端口速查表格
| 类别 | 中间件/应用 | 默认端口 | 核心用途 |
|---|---|---|---|
| 应用端口 | Spring Boot HTTP | 8080 | 应用服务端口 |
| 数据库 | MySQL | 3306 | 关系型数据库 |
| 缓存 | Redis | 6379 | 内存缓存 |
| 消息队列 | RabbitMQ(AMQP) | 5672 | 消息通信 |
| 服务注册 | Nacos | 8848 | 服务发现 + 配置中心 |
| API 文档 | Swagger 2 | 8080(同应用) | API 文档访问 |
| 监控 | Grafana | 3000 | 监控图表可视化 |
| 搜索引擎 | Elasticsearch | 9200 | 全文检索 |
熟记这些端口可大幅提升开发效率,避免因端口配置问题浪费时间。
以下是开发中常用中间件的 Web UI 界面访问路径,包含详细的默认地址、端口说明及访问示例,方便开发调试:
一、服务注册与配置中心
| 中间件 | Web UI 访问路径 | 默认端口 | 访问示例(本地) | 备注 |
|---|---|---|---|---|
| Nacos | http://{ip}:{port}/nacos | 8848 | http://localhost:8848/nacos | 账号密码默认 nacos/nacos |
| Eureka | http://{ip}:{port}/ | 8761 | http://localhost:8761/ | 无需登录,直接显示服务列表 |
| Apollo Portal | http://{ip}:{port} | 8070 | http://localhost:8070 | 账号密码默认 apollo/admin |
| Spring Cloud Config Server | 无专用 UI(需通过接口访问配置) | 8888 | http://localhost:8888/application-dev.yml | 通过 HTTP 接口查看配置文件 |
二、消息队列
| 中间件 | Web UI 访问路径 | 默认端口 | 访问示例(本地) | 备注 |
|---|---|---|---|---|
| RabbitMQ | http://{ip}:{port}/ | 15672 | http://localhost:15672/ | 账号密码默认 guest/guest(仅本地可用,远程需新建用户) |
| Kafka Manager(第三方工具) | http://{ip}:{port} | 9000 | http://localhost:9000 | 需单独部署,用于管理 Kafka 集群 |
| RocketMQ Dashboard | http://{ip}:{port} | 8080 | http://localhost:8080 | 官方可视化工具,需单独启动 |
三、缓存与数据库
| 中间件 | Web UI 访问路径 | 默认端口 | 访问示例(本地) | 备注 |
|---|---|---|---|---|
| Redis Insight(Redis 官方 UI) | http://{ip}:{port} | 8001 | http://localhost:8001 | 需单独安装,支持 Redis 集群管理 |
| Redis Commander(第三方) | http://{ip}:{port} | 8081 | http://localhost:8081 | 轻量 Redis 可视化工具,需 npm 安装 |
| MySQL Workbench(客户端,非 Web) | 无 Web 路径,需安装客户端软件 | 3306 | 客户端连接 localhost:3306 | 官方 GUI 工具,支持 SQL 可视化操作 |
| pgAdmin(PostgreSQL UI) | http://{ip}:{port} | 5050 | http://localhost:5050 | 需单独部署,PostgreSQL 官方管理工具 |
四、监控与日志
| 工具 | Web UI 访问路径 | 默认端口 | 访问示例(本地) | 备注 |
|---|---|---|---|---|
| Grafana | http://{ip}:{port} | 3000 | http://localhost:3000 | 账号密码默认 admin/admin(首次登录需修改) |
| Prometheus | http://{ip}:{port} | 9090 | http://localhost:9090 | 查看监控指标和配置,无复杂 UI |
| Kibana | http://{ip}:{port} | 5601 | http://localhost:5601 | Elasticsearch 配套日志可视化工具 |
| Spring Boot Actuator(监控端点) | http://{ip}:{port}/actuator | 8080(同应用) | http://localhost:8080/actuator/health | 需在 Spring Boot 中配置开启(默认仅暴露 health 端点) |
五、API 文档与接口测试
| 工具 | Web UI 访问路径 | 默认端口 | 访问示例(本地) | 备注 |
|---|---|---|---|---|
| Swagger 2 | http://{ip}:{port}/swagger-ui.html | 8080(同应用) | http://localhost:8080/swagger-ui.html | Spring Boot 集成后直接访问 |
| Knife4j(Swagger 增强) | http://{ip}:{port}/doc.html | 8080(同应用) | http://localhost:8080/doc.html | 美化版 Swagger,支持导出文档 |
| SpringDoc(OpenAPI 3) | http://{ip}:{port}/swagger-ui/index.html | 8080(同应用) | http://localhost:8080/swagger-ui/index.html | 支持 OpenAPI 3.0 规范 |
| Postman(客户端,非 Web) | 无 Web 路径,需安装客户端软件 | - | 客户端直接使用 | 接口测试工具,支持批量请求和环境配置 |
六、对象存储与其他工具
| 工具 | Web UI 访问路径 | 默认端口 | 访问示例(本地) | 备注 |
|---|---|---|---|---|
| MinIO | http://{ip}:{port} | 9000 | http://localhost:9000 | 账号密码默认 minioadmin/minioadmin |
| Docker Dashboard | http://{ip}:{port}(需启用远程 API) | 2375 | http://localhost:2375 | 默认关闭,需配置 Docker 远程访问 |
| Jenkins | http://{ip}:{port} | 8080 | http://localhost:8080 | 首次登录需输入初始密码(查看容器日志或文件) |
访问注意事项
- 路径区分大小写:部分工具的路径严格区分大小写(如 Swagger 的
swagger-ui.html不可写成大写); - 上下文路径配置:若中间件或应用配置了
context-path(上下文路径),需在端口后添加,例如:- Spring Boot 应用配置
server.servlet.context-path=/api,则 Swagger 路径为http://localhost:8080/api/swagger-ui.html;
- Spring Boot 应用配置
- 远程访问:访问远程服务器的 Web UI 时,需将
localhost替换为服务器 IP,例如http://192.168.1.100:15672(RabbitMQ 远程访问); - 端口映射:Docker 部署的中间件,需确保端口已映射到宿主机(如
docker run -p 15672:15672 rabbitmq:3-management),否则无法通过宿主机 IP 访问。
通过以上路径,可快速访问各工具的 Web 界面,方便开发中的配置管理、监控和调试。
更多推荐



所有评论(0)