一部简单的 Docker Compose 示例,快速部署 Web 应用程序
2023-11-14 04:04:39
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 的使用,并将其应用到您的实际项目中。