docker部署规范-服务命名和端口分配

该博客介绍了docker部署规范,包括服务命名和端口分配。服务命名优先用中间件、语言名称,多个同类服务用中横线区分;端口命名容器内用默认值,映射到主机采用前置默认+统一分配端口段组合。还提及服务间引用,优先用“服务名:默认端口”方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker部署规范-服务命名和端口分配

本规范根据多个项目实践总结,服务命名和端口分配都体现在docker-compose.yml的配置中

服务命名

一个产品会包含多个服务,每个服务的命名如下:

  • 优先采用中间件名称、语言名称对服务进行命名,如下
    • mysql
    • mongo
    • java
    • python
    • web
  • 如果同一类型服务有多个,则采用中横线命名方式进行区分,如下:
    • java-auth :java鉴权服务
    • web-auth: web鉴权服务

端口命名

一个产品会包含多个服务,每个服务的端口如下:

  • 容器内部名称,不改动原服务端口默认值

    • mysql:3306
    • mongo:27017
    • java:7001
    • python:6001
    • web: 80(http)、443(https)
  • 映射到宿主主机的端口时,采用前置默认+统一分配端口段 组合方式,如某个项目分配一个端口段,比如060~064

    • mysql:33060->3306
    • mongo:27060->27017
    • java: 7060->7001
    • python:6060->6001
    • web:8060->80
    • java-auth :7061->7001(第二个java服务,在自己端口段内递增分配)
    • web-auth: 8061->80(第二个web服务,在自己端口段内递增分配)
  • 总计有000~999可以分配,每个产品分配一个后三位的端口端,不同服务后三位端口保持一致

    • 例如每个产品分配5个端口端,一个主机可以满足200个产品的端口分配

服务间的引用

服务间的引用主要包含两个常见:

  • docker-compose文件中的服务引用
  • nginx.conf中的服务引用

优先采用"服务名:默认端口”方式,这样在重新部署时不用做调整,例如:

docker-compose中的引用样例


java-auth:
    image: java-auth:master
    ports:
      - "7061:7001"
    environment:
       spring.datasource.url: jdbc:mysql://mysql:3306/wh_index?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&autoReconnect=true

nginx中的引用样例

server {
    listen       80;
    location / {
        root  /usr/src/app;
        index  index.html;
    }

    location /api/ {
        proxy_pass http://java:7001/api/;  #后台服务路径
    }

    location  /api/auth/ {
        proxy_pass http://java-auth:7001/api/auth/api/; #菜单服务路径
    }

    location /api/p/ {
        proxy_pass http://python:6001/api/p/;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值