小学生网站应用部署:centos7.9系统使用docker部署django项目+redis+mysql数据【视频讲解版】
【摘要】 小学生网站应用部署: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)