小学生网站应用部署:centos7.9系统使用docker部署django项目+redis+mysql数据【视频讲解版】

举报
luichun 发表于 2023/04/30 09:25:23 2023/04/30
【摘要】 小学生网站应用部署:centos7.9系统使用docker部署django项目+【redis+mysql】数据库 适合小学4年级的学生

小学生网站应用部署:centos7.9系统使用docker部署django项目+【redis+mysql】数据库

视频操作流程

https://www.bilibili.com/video/BV11g4y1L7gA/
[video(video-DVjbMWf4-1682817487303)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=825613844)(image-https://img-blog.csdnimg.cn/img_convert/b512259400647de76e0d14402641118d.jpeg)(title-vscode连接华为云服务器)]

Dockerfile文件

FROM python:3.9
EXPOSE 8080
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
RUN pip install --upgrade pip
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /app
COPY . /app
WORKDIR /app

docker-compose.yml

version: "3.9"
services:
  mysql_db_services:
    image: mysql:8.0.32
    # 该镜像是网上直接拉下来,并不需要修改太多东西
    container_name: mysql_django
    ports:
      - 3306:3306
      - 33060:33060
    environment:
      - MYSQL_ROOT_PASSWORD=root1234
    # 这个容器需要使用环境变量值来充当密码,也就是mysql连接的密码
    restart: always
    networks:
      - anet
    
  redis_db_services:
  # 该镜像不需要修改东西
    image: redis:bullseye
    container_name: redis_django
    ports:
      - 6379:6379
    restart: always
    networks:
      - anet
  django_back_services:
    # 这个python语言django框架需要自己去修改
    build: .
    image: python_django:latest
    container_name: python_django
    ports: 
      - 8080:8080
    depends_on:
      - mysql_db_services
      - redis_db_services
    restart: always
    volumes:
      # 本地django包路径
      - /home:/app
    # entrypoint: python manage.py runserver
    # 不要每次启动都运行django,因为没有办法通过另一个终端去停止django
    command: ["sleep","infinity"]
    # 上行命令是使得这个容器一直运行
    networks:
      - anet

# networks:
#     anet:
#       external: true
networks:
    anet:
      driver: bridge
#     restart: always   当容器出现故障后就一直重启
#     请创建网络组

requirements.txt文件

django>=4.1.5,<4.2
#django的版本
mysqlclient==2.1.1,<2.1.2
#连接mysql数据库的插件工具

操作说明

华为云服务器:
服务器版本:CentOS 7.9 64bit
服务器IP:119.12.161.74
服务器用户名:root
服务器连接密码:Dalao777


购买服务器后开通端口可访问权限:
3306端口:用于本地主机软件连接服务器中的数据库
8080端口:用于django后端的访问

vscode:需要插件remote-ssh
使用vscode连接到服务器--请看视频
vscode连接用户和ip:root@119.12.161.74


进入服务器的/home目录中,因为该目录中没有任何文件,所以我决定把写好的文件放在这里
docker-compose.yml  文件---编排脚本
Dockerfile          文件---django的镜像
requirements.txt    文件---django版本和插件目录

安装docker到服务器中---2行命令
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

安装docker时有可能会出现该终端异常,不显示,需要新建终端


安装docker compose 到服务器中#centos主机安装完docker后需要自己安装docker-compoe
curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

#centos中执行docker compose编排 不再需要想windows系统中写docker-compose 中的[-]符号 而是使用空格代替
#查看docker-compose版本
docker compose version
#安装文档请查看#https://docs.docker.com/compose/install/other/


启动docker
sudo systemctl start docker


创建docker容器的网络组命令---用于给docker compose编排的多个容器一个公用的网络组
docker network create --driver bridge anet


把docker-compose.yml文件中的编排构建出来
docker compose build
启动这个构建出来的任务组
docker compose up


连接该服务器的3306端口的mysql数据库创建my库
【请查看视频】
创建my库的命令如下
create database if not exists my default character set utf8mb4 collate utf8mb4_unicode_ci;


进入容器
进入这个任务组中的3个容器中的python环境的容器---创建项目或进行数据库的迁移和管理员的创建--因为数据库为新建的,没有任何数据
docker compose exec django_back_services bash

    创建django项目
    django-admin startproject app .

    因为创建该django项目的文件路径映射到了服务器中的home目录中,所以可以直接在该vscode远程连接中修改里面的文件

    迁移数据库
    python manage.py migrate


    创建管理员用户
    python manage.py createsuperuser
    管理员账号:admin
    管理员密码:123456

    再次迁移更新数据库
    python manage.py migrate


    运行django项目
    python manage.py runserver 0.0.0.0:8080


    当可以访问该ip服务器的页面后,退出容器
    退出django项目ctrl+c


退出容器
exit


让该django容器中后台启动运行django项目
docker compose exec -d django_back_services python /app/manage.py runserver 0.0.0.0:8080


停止编排这个编排服务容器的命令
docker compose stop django_back_services
启动这个停止的编排服务容器
docker compose start django_back_services
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。