返回

一部简单的 Docker Compose 示例,快速部署 Web 应用程序

后端

Docker Compose 示例项目概览

对于初学者来说,Docker Compose 可能是您了解容器化技术最快捷的方式之一。通过它,我们可以轻松地将多个容器组合成一个可独立运行的服务,同时简化了容器管理和应用程序部署的过程。在这篇文章中,我将演示一个通过 Docker Compose 部署的 demo 项目,其中分别有两个 Java Web 容器服务,以及一个 Nginx 用于反向代理的容器服务。

理解项目架构

在了解部署过程之前,我们先来看看项目架构。我们的项目模块服务包括一个 Java Web 服务,一个 MySQL 数据库服务,以及一个 Redis 缓存服务。所有这些服务都通过 Docker Compose 进行部署。而我们的 demo 项目则包含了两个 Java Web 服务,分别是 app1 和 app2,以及一个 Nginx 反向代理服务。

部署 Java Web 容器服务

为了部署 Java Web 容器服务,我们需要创建一个 docker-compose.yml 文件,其中包含服务定义、网络配置等信息。对于我们的示例项目,docker-compose.yml 文件如下所示:

version: '3.7'
services:
  app1:
    build: ./app1
    ports:
      - "8080:8080"
  app2:
    build: ./app2
    ports:
      - "8081:8081"
  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
networks:
  default:
    external:
      name: my-network

部署 Nginx 反向代理服务

接下来,我们需要部署 Nginx 反向代理服务,作为我们的前端负载均衡器,将请求转发到后端的 Java Web 容器服务。在上面的 docker-compose.yml 文件中,我们已经定义了 nginx 服务。

nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf

在部署之前,我们需要创建 nginx.conf 文件,并将其内容替换为以下内容:

upstream backend {
  server app1:8080;
  server app2:8081;
}

server {
  listen 80;
  server_name localhost;

  location / {
    proxy_pass http://backend;
  }
}

运行项目

现在,我们可以通过运行以下命令来启动我们的项目:

docker-compose up -d

访问项目

项目启动后,我们可以通过以下网址访问我们的应用程序:

http://localhost

此时,您应该会看到我们的应用程序正在运行。通过这个示例,我们展示了如何使用 Docker Compose 部署一个简单的 Java Web 应用程序,其中包含两个 Java Web 容器服务和一个 Nginx 反向代理服务。我希望这篇文章能够帮助您更好地理解 Docker Compose 的使用,并将其应用到您的实际项目中。