云耀云服务器L实例是新一代的轻量应用云服务器,专为中小企业和开发者设计,提供便捷的开箱即用体验。该产品提供丰富且经过严格筛选的应用镜像,可一键部署应用,极大程度简化了客户在云端构建电商网站、Web应用、小程序、学习环境以及各类开发测试等任务的过程。
智能不卡顿:华为云擎天架构加持,软硬协同结合AI算法智能调度,为您提供优质性能。华为云全球存算一张网,数据传输时延比眨眼还短,满足游戏、音视频等低网络时延场景的高要求。
价优随心用:超高性价比,超低门槛,敞开随心用。多种实例规格,平衡性能与成本。技术升级优化用云成本,普惠更多初创企业和开发者。
上手更简单:多种镜像、资源组合一键下单。严选多款高品质镜像,经过华为云官方严格测试,覆盖七大场景,预置模板,快速搭建,安全可信。自动化编排,资源一键开通,业务分钟级上线。平滑学习曲线,向导式应用搭建,应用轻松启用。
管理更省心:拓扑、资源、镜像可视化管理,业务架构透明化管理。贴心服务状态提醒,资源续退一键式操作,实现极简管理。资源负载、安全,使用率实时监控,保障服务永远在线。可选配丰富的安全服务,包括丰富的备份、主机安全等服务,提供最高等级的安全防护。
Django-CMS是一款基于Django框架的开源企业内容管理系统,它功能实用、安全可靠,支持拖拽上传图片、轮播图、Docker 部署等功能,可轻松进行二次开发,多用于构建企业官网。
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为云耀云服务器L实例,使用的应用镜像为Portainer 2.18.4;
3.由于使用的应用镜像为Portainer,云服务器自动已部署好Docker环境;
4.在华为云云耀云服务器L实例上部署Django-CMS。
服务器类别 | 应用镜像 | 内网IP地址 | Docker版本 | Portainer版本 | 操作系统版本 |
---|---|---|---|---|---|
云耀云服务器L实例 | Docker可视化Portainer | 192.168.0.168 | 24.0.4 | 2.18.4 | Ubuntu 22.04.1 LTS |
1.官网链接:https://www.huaweicloud.com/product/hecs-light.html
2.购买规格:
区域:华北—北京四;
应用镜像:Docker可视化-Portainer;
实例规格:2核2G/系统盘40G/峰值带宽 3Mbps/流量包400G;
实例名称:自定义即可,这里编辑为HECS-L-Portainer;
购买时长:1个月。
一般购买完毕后,云耀云服务器L实例可以快速运行启动,检查运行状态显示“运行中”即可。在资源列表中,会显示到期时间,从当前购买时间开始计算,这里由于之前已经购买过,剩余期限已经不多了。
点击进入云耀云服务器L实例管理页面,复制其弹性公网IP地址,后面远程连接以及外网访问都要用上。
在Xshell工具中,填写服务器弹性公网IP地址、账号密码信息,ssh连接远程服务器。
检查云耀云服务器L实例的操作系统版本,当前操作系统版本为Ubuntu 22.04.1 LTS。
root@hcss-ecs-f91c:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
检查系统内核版本
root@hcss-ecs-f91c:~# uname -r
5.15.0-60-generic
华为云云耀云服务器L实例使用Portainer应用镜像时,已经部署好Docker环境,并且自动安装了Portainer工具。当前安装的Docker版本为24.0.6。
root@hcss-ecs-f91c:~# docker -v
Docker version 24.0.6, build ed223bc
检查Docker服务状态,确保Docker服务正常运行。
root@hcss-ecs-f91c:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-09-23 23:24:32 CST; 3 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 1294 (dockerd)
Tasks: 122
Memory: 65.5M
CPU: 3min 32.346s
CGroup: /system.slice/docker.service
检查docker compose版本,当前版本为
root@hcss-ecs-f91c:~# docker compose version
Docker Compose version v2.19.1
django-cms-quickstart项目中,此版本使用运行的Python 3.9以及Django 3.2和Django CMS 3.11的最新版本。
git clone https://github.com/django-cms/django-cms-quickstart.git
进入django-cms-quickstart目录,查看dockerfile文件。
root@hcss-ecs-f91c:/data/django-cms-quickstart# cat Dockerfile
FROM python:3.9
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
RUN python manage.py collectstatic --noinput
CMD uwsgi --http=0.0.0.0:80 --module=backend.wsgiscms/core:latest
docker.io/sscms/core:latest
在django-cms-quickstart目录下,查看docker-compose.yml内容,默认容器映射的对外访问端口为8000,也可以自行修改端口。
root@hcss-ecs-f91c:/data/django-cms-quickstart# cat Dockerfile
FROM python:3.9
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
RUN python manage.py collectstatic --noinput
CMD uwsgi --http=0.0.0.0:80 --module=backend.wsgi
root@hcss-ecs-f91c:/data/django-cms-quickstart#
root@hcss-ecs-f91c:/data/django-cms-quickstart# cat docker-compose.yml
version: "3"
services:
web:
# the application's web service (container) will use an image based on our Dockerfile
build: .
# map the internal port 80 to port 8000 on the host
ports:
- "8000:80"
# map the host directory to app (which allows us to see and edit files inside the container)
volumes:
- ".:/app:rw"
- "./data:/data:rw"
# the default command to run whenever the container is launched
command: python manage.py runserver 0.0.0.0:80
# the URL 'postgres' or 'mysql' will point to the application's db service
networks:
- djangocmsnet
env_file: .env-local
database_default:
# Select one of the following db configurations for the database
image: postgres:13.5-alpine
ports:
- "5432:5432/tcp" # allow your local dev env to connect to the db
environment:
POSTGRES_DB: "db"
POSTGRES_PASSWORD: "password"
POSTGRES_HOST_AUTH_METHOD: "trust"
SERVICE_MANAGER: "fsm-postgres"
networks:
- djangocmsnet
volumes:
- ".:/app:rw"
networks:
djangocmsnet:
查看环境变量文件.env-local文件内容。
root@hcss-ecs-f91c:/data/django-cms-quickstart# cat .env-local
DATABASE_URL=postgres://postgres:password@database_default:5432/db
DEFAULT_STORAGE_DSN=file:///data/media/?url=%2Fmedia%2F
DEBUG=True
DOMAIN_ALIASES="localhost, 127.0.0.1"
SECURE_SSL_REDIRECT=False
在django-cms-quickstart目录下,构建Django-CMS镜像,镜像名为django-cms-quickstart_web。
docker compose build web
首先创建database_default容器,为数据迁移做准备。
docker compose up -d database_default
使用以下命令,进行数据迁移操作。
docker compose run web python manage.py migrate
设置Django-CMS的管理用户和密码,使用以下命令自定义设置即可。
docker compose run web python manage.py createsuperuser
使用docker compose快速一键部署Django-CMS。
docker compose up -d
检查Django-CMS容器状态,确保Django-CMS各容器都正常启动。
root@hcss-ecs-f91c:/data/django-cms-quickstart# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
django-cms-quickstart-database_default-1 postgres:13.5-alpine "docker-entrypoint.s…" database_default 11 minutes ago Up 11 minutes 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
django-cms-quickstart-web-1 django-cms-quickstart-web "python manage.py ru…" web About a minute ago Up About a minute 0.0.0.0:8000->80/tcp, :::8000->80/tcp
进入到华为云云耀云服务器L实例的安全组管理页面,放行入方向端口8000。
访问地址:http://弹性公网IP地址/admin,账号密码:root/admin,为之前设置好的管理员账号和密码。
点击新增页面,下一步。
输入网站的基本信息,以及网站内容。
访问地址:http://弹性公网IP地址:8000/