当前位置: 首页 > article >正文

使用 Docker Compose 来编排部署LMTNR项目

使用 Docker Compose 来部署一个包含 Linux、MySQL、Tomcat、Nginx 和 Redis 的完整项目的例子。假设我们要部署一个简单的 Java Web 应用,并且使用 Nginx 作为反向代理服务器。

项目目录结构

首先需要确保 Docker 和docker-compose已经安装并正在运行。
docker --version
docker-compose -v

如果有不会的安装的,参考在linux系统上安装Docker和docker-compose-CSDN博客

下面开始实战演练docker-compose编排项目

第一步、创建项目目录my_project

mkdir my_project
进入项目目录
cd my_project
然后创建 docker-compose.yml 文件
vim docker-compose.yml

输入以下内容:

version: '3'
services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: mydatabase
    volumes:
      - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
    ports:
      - "3306:3306"

  tomcat:
    image: tomcat:9.0
    container_name: tomcat
    volumes:
      - ./tomcat/webapps:/usr/local/tomcat/webapps
    ports:
      - "8080:8080"
    depends_on:
      - mysql

  nginx:
    image: nginx:latest
    container_name: nginx
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "80:80"
    depends_on:
      - tomcat

  redis:
    image: redis:latest
    container_name: redis
    volumes:
      - ./redis/redis.conf:/usr/local/etc/redis/redis.conf
    ports:
      - "6379:6379"

第二步、nginx配置

进入项目目录 
cd my_project
创建nginx目录
mkdir nginx
进入nginx目录
cd nginx
创建default.conf文件
vim default.conf

输入以下内容:

server {
    listen 80;
    server_name localhost;

    location / {
        proxy_pass http://tomcat:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

第三步、tomcat配置

返回my_project项目目录
cd -
创建tomcat/webapps/ROOT/  目录
mkdir -p tomcat/webapps/ROOT/
进入tomcat/webapps/ROOT/  目录
cd tomcat/webapps/ROOT/  
创建index.jsp文件
vim index.jsp

输入以下内容:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello World</title>
</head>
<body>
    <h1>Hello, World!</h1>
</body>
</html>

第四步、mysql数据库配置

返回my_project项目目录
cd -
创建mysql目录
mkdir mysql
进入mysql目录
cd mysql
创建文件init.sql
vim init.sql

输入以下内容:

CREATE DATABASE IF NOT EXISTS mydatabase;
USE mydatabase;

CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL
);

第五步、redis配置

返回my_project项目目录
cd -
创建redis目录
mkdir redis
进入redis目录
cd redis
创建文件redis.conf
vim redis.conf

输入以下内容:

bind 0.0.0.0
protected-mode no
port 6379


第六步、启动所有服务

在 my_project 目录下运行以下命令来启动所有服务
返回my_project项目目录
cd -

docker-compose up -d

这个命令会下载所需的镜像并启动所有服务。你可以通过访问 http://localhost /主机ip 来查看你的应用是否正常运行。如果一切正常,你应该会看到一个显示 "Hello, World!" 的页面。

命令执行结果

在浏览器进行访问

成功!


http://www.kler.cn/a/416089.html

相关文章:

  • uniapp在App端定义全局弹窗,当打开关闭弹窗会触发onShow、onHide生命周期怎么解决?
  • DevExpress的web Dashboard应用
  • 玄机应急:linux入侵排查webshell查杀日志分析
  • 快速理解倒排索引在ElasticSearch中的作用
  • Scala身份证上的秘密以及Map的遍历
  • (微信小程序)基于Spring Boot的校园失物招领平台的设计与实现(vue3+uniapp+mysql)
  • 图数据库 | 10、图数据库架构设计——高性能图存储架构(上)
  • Zookeeper实现分布式锁、Zookeeper实现配置中心
  • 使用Ansible进行Red Hat Linux自动化运维
  • 基于 SpringBoot 的夕阳红公寓管理系统资源整合与高效利用
  • Python 3 教程第33篇(MySQL - mysql-connector 驱动)
  • 长短期记忆网络 (LSTM) 简介
  • 基于Java Springboot蛋糕商城
  • 开源测试_log4net
  • C语言数据结构——详细讲解《队列》
  • uniapp App端在renderjs层渲染echarts获取不到service层id的问题
  • 数字化转型背景下,高职院校计算机网络应用的革新策略
  • C++算法练习-day49——108.将有序数组转换为二叉搜索树
  • 【人工智能基础】计算机视觉
  • ElementUI:el-drawer实现在父组件区域内打开抽屉组件非全屏
  • git如何创建一次没有修改的commit
  • windows C#-取消任务列表(下)
  • python画图plt.close()一直闪烁
  • webpack5提升打包构建速度(四)
  • 详解 YOLOv5 模型运行参数含义以及设置及在 PyCharm 中的配置方法
  • uniapp首页样式,实现菜单导航结构