现今因为容器的盛行,许多的企业都导入了容器解决方案,使得布署与开发都能加快速度。今天的内容是描述怎麽将专案的服务给进行容器化,并使用 docker-compose 进行服务布署。
专案内容有 DB、Spring boot、React 等服务,以下是原始的布署方式,但存在着许多问题
以一个一台虚拟机内布署这些服务来看
於是做了整理
将不必要的 Port 拿掉,透过服务发现方式进行服务存取,可以减少透过 ens33 网卡那边的 NAT 转换,将 Nginx 容器化进行更版之类都方便许多。
整体存取过程是 Client -----> ens33 存取 80 Port 藉由 NAT 和 routing 将流量导入 docker0 -----> 到 Nginx 容器 -----> 反向代理到 -----> Spring boot Application + React 进行网页上的存取。
接下来是如何操作 docker ? 当时大四容器技术 docker 很红,因此在拿时有稍微自干一下这个东西,以下是常见操作
docker run
docker images
docker ps
docker stop | start | restart
docker rm
docker logs -f
docker exec
会了这些基本上一个服务就能跑起来使用了~。更体面一点使用 docker-compose 建构专案的服务,以下是一个 Spring boot 後端配 Nginx,Tomcat 预设 Port 是 8080 因此,nginx 在做反向代理时只要指定 web_server_be:8080
,Client 到 Nginx 的流量都会被导到 web_server_be。
version: '3.7'
services:
backend: # 服务名称
container_name: web_server_be # 容器名称
image: Spring-boot:v1.2.3 # Image
environment: # 环境变数
- PROJECT_PROPERTIES={"db_username":"...","db_classname":"...","db_url":"..."}
restart: always # 服务机制
nginx_proxy:
container_name: nginx
image: nginx:latest
volumes: # 挂载
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/cert:/etc/nginx/ssl/certs
- ./nginx/sites-enabled:/etc/nginx/sites-enabled
restart: always
ports: # 映射到本机到容器的 Port
- 80:80
- 443:443
depends_on: # 等待 backend 启动後才能启动
- backend
启动方式,前提下是要在该 docker-compose yaml 档下执行否则要用 -f 指定该 yaml 路径
docker-compose up -d # 在背景启动服务
docker-compose stop
docker-compose ps
下个章节将会介绍使用前後端分离,当前的 Web 服务包含了前端和後端,其实在开发上会有一点不那麽适当,因为在做 CI/CD 的时候其实前端的改动跟後端其实关系不大,应当将他们分开,否则前端改动时连後端也要着做测试和建置。
在Vue的世界中,是由一个又一个的元件所构成,而我们可以透过自订元件的方式量身打造客制化的元件并进行...
相信有许多人很讨厌网页广告,会在网页上安装广告拦截器如AdBlock、AdGuard等。但有很多装置...
T0837 Loss of Protection 攻击者攻击目的是针对设备的安全保护机制,所谓安全保...
ImageTagHelper:是针对HTML原生<img>的封装。 使<img>具备hash val...
最近在思考工具机在使用C#的图形化介面 因此来查一下看长的怎样 https://docs.micro...