首页 > 系统相关 >【教程】在CentOS上使用Docker部署前后端分离项目的完整指南

【教程】在CentOS上使用Docker部署前后端分离项目的完整指南

时间:2024-06-09 20:58:46浏览次数:18  
标签:教程 compose frontend CentOS 步骤 docker Docker backend

当在CentOS上使用Docker部署前后端分离项目时,需要遵循一系列步骤来实现这一目标。以下是每个步骤的详细内容:

步骤1:安装Docker和Docker Compose

1.1 安装Docker

在CentOS上安装Docker,可以按照以下步骤进行:


sudo yum install -y yum-utils device-mapper-persistent-data lvm2

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io

1.2 启动Docker服务

安装完Docker后,启动Docker服务:


sudo systemctl start docker

1.3 安装Docker Compose

安装Docker Compose可以通过以下命令完成:


sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

步骤2:准备应用环境

2.1 Docker化Django后端
  1. 在Django项目根目录下创建Dockerfile,例如backend/Dockerfile:

FROM python:3.8

ENV PYTHONUNBUFFERED 1

RUN mkdir /code

WORKDIR /code

COPY requirements.txt /code/

RUN pip install -r requirements.txt

COPY . /code/

  1. 确保requirements.txt包含了所有必要的依赖。
2.2 Docker化Vue前端
  1. 在Vue项目根目录下创建Dockerfile,例如frontend/Dockerfile:

FROM node:lts-alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

步骤3:配置Redis、Nginx、RabbitMQ和MySQL

3.1 Redis配置

通常情况下,直接在docker-compose.yml文件中配置Redis即可。

3.2 Nginx配置

创建Nginx配置文件nginx/default.conf,配置前后端服务的代理。


server {

listen 80;

location / {

proxy_pass http://frontend:80;

}

location /api/ {

rewrite ^/api/(.*)$ /$1 break;

proxy_pass http://backend:8000;

}

}

3.3 RabbitMQ和MySQL

使用默认的Docker镜像,并通过环境变量进行必要的配置。

步骤4:编写Docker Compose文件

在项目根目录下创建docker-compose.yml文件,配置所有服务的一次性启动和管理:


version: '3'

services:

db:

image: mysql:5.7

environment:

MYSQL_DATABASE: 'yourdb'

MYSQL_USER: 'user'

MYSQL_PASSWORD: 'password'

MYSQL_ROOT_PASSWORD: 'rootpassword'

redis:

image: redis:alpine

rabbitmq:

image: rabbitmq:3-management

backend:

build: ./backend

command: python manage.py runserver 0.0.0.0:8000

volumes:

- ./backend:/code

depends_on:

- db

- redis

frontend:

build: ./frontend

volumes:

- ./frontend:/app

nginx:

image: nginx:alpine

ports:

- "80:80"

volumes:

- ./nginx/default.conf:/etc/nginx/conf.d/default.conf

depends_on:

- backend

- frontend

步骤5:构建和启动服务

运行以下命令构建并启动所有服务:


docker-compose up --build

步骤6:测试项目

  • 测试Django后端: 访问http://your-server-ip/api/,应能看到Django应用的响应。
  • 测试Vue前端: 访问http://your-server-ip/,应能看到Vue应用的界面。
  • Redis、RabbitMQ和MySQL测试: 通过Django应用尝试连接和使用这些服务,确保它们被正确配置且可以互相通信。

步骤7:监控和日志

使用Docker Compose,可以通过docker-compose logs命令查看所有容器的日志,这对于监控应用和调试问题非常有用。

标签:教程,compose,frontend,CentOS,步骤,docker,Docker,backend
From: https://blog.csdn.net/2401_85314122/article/details/139437930

相关文章

  • Kafka 主题 CLI 教程
    KafkaTopicsCLI,即kafka-topics用于创建、删除、描述或更改Kafka中的主题。请确保您已预先启动Kafka 如何创建Kafka主题?要创建Kafka主题,我们需要提供必需的参数:如果是Kafkav2.2+,请使用Kafka主机名和端口,例如,localhost:9092如果是旧版本的Kafka,请使用Zook......
  • 02-软件教程资料
    目录页1.设计教程1.1.图形处理1.2.影视动画1.设计教程1.1.图形处理图形处理Photoshop(图片照片处理)PS基础实操课程Illustrator(矢量图形处理)1.2.影视动画影视动画Premiere(视频编辑)AfterEffects(图形视频处理)Cin......
  • 【Docker系列】跨平台 Docker 镜像构建:深入理解`--platform`参数
    ......
  • 仿东郊到家《十大教程》公众号+小程序+APP 往约到家 上门预约服务 全开源 运营版 预约
    修复技师定位问题1、数据概况(新增业务城市用户投票功能,更加直观的查看业务城市的关注度、人气和影响力,促进业务开展)2、数据概况(增加可视化数据大盘,代理商端可查看自己下面的技师服务时长、在线时长、业绩、积分、加钟率、退单率、退单数量、总订单量等数据,更加直观的查看......
  • RocketMQ教程(三):RocketMQ的核心组件
    四个核心组件RocketMQ的架构采用了典型的分布式系统设计理念,以确保高性能、高可用和可扩展性。RocketMQ主要由四个核心组件构成:NameServer、Broker、Producer和Consumer。下面是对这些组件以及它们在RocketMQ中的角色和功能的概述:1.NameServer角色和功能:NameServer......
  • kali2022安装教程(附安装包)
    第一步:下载镜像文件百度网盘下载[链接:https://pan.baidu.com/s/1efRQGFTbq6Kgw9axLOmWzg?pwd=emxf()第二步:打开Vmware创建新的虚拟机,选择高级,然后下一步直接默认下一步选择稍后安装然后下一步kali属于Debian系统所以这里直接选择Debian664位进行命名和选择安装位置......
  • Ventoy使用教程
    Ventoy是一款开源的USB启动盘制作工具,它允许用户将多种类型的操作系统镜像文件(如ISO、WIM、IMG等)直接拷贝到U盘,而无需反复格式化U盘。本教程将详细介绍Ventoy的使用步骤,帮助用户轻松制作USB启动盘。一、准备工作下载Ventoy:访问Ventoy官网(https://www.ventoy.net/cn/index.ht......
  • 《手把手教你》系列练习篇之15-python+ selenium自动化测试 -番外篇 - 最后一波啊!!!(详细
    1.简介 本来上一篇就是练习篇的最后一篇文章了,但是有的小伙伴私下反映说是做了那么多练习,没有一个比较综合的demo练练手。因此宏哥在这里又补存了一些常见的知识点进行练习,在文章最后也通过实例给小伙伴们或者童鞋们进行了一个登录模块的自动化测试的实例,其他的你可以照......
  • 《手把手教你》系列练习篇之14-python+ selenium自动化测试 -压台篇(详细教程)
    1.简介 本文是练习篇的最后一篇文章,虽然练习篇的文章到此就要和大家说拜拜了,但是我们的学习之路才刚刚开始。不要停下你的脚步,大步朝前走吧!比你优秀的人还在走着,我们有什么理由停下自己的脚步了,生命不止,学习亦是如此。好了,宏哥的毒鸡汤好喝吧,喝够了就开始学习吧。......
  • upload-labs第五关教程
    upload-labs第五关教程一、源代码分析代码审计.user.ini介绍二、绕过分析1)点空格点绕过上传一个eval.php文件使用burpsuite进行抓包修改放包进行中国蚁剑连接2).user.ini绕过编写一个.user.ini文件修改配置文件php.ini将.user.ini保存在www文件夹下。再上传eval.png使......