docker部署规范-服务命名和端⼝分配
⽂章⽬录
docker部署规范-服务命名和端⼝分配
本规范根据多个项⽬实践总结,服务命名和端⼝分配都体现在l的配置中
服务命名
⼀个产品会包含多个服务,每个服务的命名如下:
优先采⽤中间件名称、语⾔名称对服务进⾏命名,如下
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⽂件中的服务引⽤
优先采⽤"服务名:默认端⼝”⽅式,这样在重新部署时不⽤做调整,例如:
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=tr ue
nginx中的引⽤样例
server{
listen 80;
location /{
root /usr/src/app;
index index.html;
}
location /api/{
proxy_pass java:7001/api/;#后台服务路径
}
location /api/auth/{
mysql默认端口proxy_pass java-auth:7001/api/auth/api/;#菜单服务路径
}
location /api/p/{
proxy_pass python:6001/api/p/;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论