Docker 自定义网络 部署项目
大约 1 分钟
Docker 自定义网络 部署项目
步骤
1.Docker 创建自定义网络
2.把 Nginx,后端,MYsql 3个容器加入到同一网络下,以便进行数据交互
3.Nginx进行反向代理后端和数据库配置,需要配置IP的地方都用各自的容器名字(Docker会为容器自动分配IP,填写容器名字就相当于IP)
Nginx 后端 MYsql 在同一网络下 详解
如果项目部署的时候,后端接口地址和Mysql的IP地址都用服务器ip写死的话,当服务器更换时,所有的ip都要重写很麻烦。
此时可以在Docker中创建自定义网络,把后端接口和Mysql服务放到同一个网络中(docker会为容器自动分配ip),此时可以完成数据交互。
由于分配的ip是会动态变化的,所以通过自定义一个网络名(tsy-store)就相当于是ip地址,使其后端与数据库在同一网络下。docker底层会根据容器分配的ip和容器端口来实现容器间的访问.自定义网络名利用这种机制使其在同一网络下后由 Dokcer 底层自行进行查找交互。
具体配置
Nginx
http {
server {
listen 80;
root /usr/share/nginx/html;
index index.html;
# 处理静态文件
location / {
try_files $uri /index.html;
}
# 代理 API 请求
location /api {
proxy_pass http://tsy-store(后端容器名字):8081/api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
后端Springboot
server:
port: 8081
#全局接口前缀配置
servlet:
context-path: /api
spring:
datasource:
//通过自定义网络
url: jdbc:mysql://mysql(数据库容器名字):3306/tsy-store?useSSL=false&serverTimezone=UTC
username: root
password: tsy
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver