CentOS下的Docker Django环境部署

1 篇文章 0 订阅
1 篇文章 0 订阅

Docker安装

Install Docker Engine on CentOS
docker官网

根据步骤安装即可

DockerFile

docker pull centos:7 首先拉取一下centos7镜像

新建Dockerfile文件,将以下内容放入。

# 使用 CentOS 7 作为基础镜像
FROM centos:7

# 更新系统并安装必要的工具
RUN yum -y update && \
    yum -y install epel-release && \
    yum -y install python3-pip gcc mysql-devel python3-devel openssh-server && \
    yum clean all

# 配置 SSH 服务
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" && \
    ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" && \
    ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed2519_key -N ""

# 设置 SSH 的 root 密码。为了安全起见,建议后续更改此密码
RUN echo 'root:password' | chpasswd

# 安装 Python 库 (这里是我需要的)
RUN pip3 install Django
RUN pip3 install mysqlclient
RUN pip3 install redis
RUN pip3 install djangorestframework
RUN pip3 install kafka-python

# 暴露所需的端口(例如:8000 是 Django 默认的端口,22 是 SSH 的默认端口)
EXPOSE 8000 22

# 使用 supervisord 来同时运行 SSH 和 Django
CMD ["/usr/sbin/sshd", "-D"]

执行以下命令构建及运行镜像

docker build -t django_lesson:1.0 .
docker run -p 20000:22 -p 8000:8000 --name django_server -itd django_lesson:1.0

docker镜像

可以看到已经创建好的镜像

SSH免密登陆

# 密码为password
ssh root@localhost -p 20000

# 进入后可以配置ssh免密登陆
# ssh-keygen
# ssh-copy-id 
# 这里就不做展示

开放安全组

如果想外部通过ssh连接,云服务的安全组必须打开,阿里云和华为云都叫安全组,腾讯的轻量服务器叫做防火墙
开放安全组

开放这两个端口

设置普通用户并分配sudo权限

useradd acs
passwd acs

CentOS 7 使用 wheel 组为用户分配 sudo 权限

usermod -aG wheel ac

确保 /etc/sudoers 文件中有以下行来允许 wheel 组的成员使用 sudo:

%wheel  ALL=(ALL)       ALL

sudo

通常,这一行已经存在并被默认启用。如果需要查看或编辑 /etc/sudoers 文件,建议使用 visudo 命令,因为这是一个受保护的文件,而 visudo 会检查你的编辑是否有误。

# 使用acs用户执行以下命令,如果成功即sudo权限分配成功
sudo visudo

创建Django项目

django-admin startproject <你的项目名称>

由于这种安装模式sqlite的版本会不兼容,我一开始也是打算直接用mysql,所以更改配置文件变为mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<你的database>',
        'USER': 'root',
        'PASSWORD': '<你的数据库密码>',
        'HOST': '<你的数据库ip地址>',
        'PORT': '<你的数据库端口>',
    }
}

接下来创建ap

python3 manage.py startapp <你的app名称>

在settings.py中修改

INSTALLED_APPS = [
    'aimodel.apps.AimodelConfig', # 添加的内容,我的app叫aimodel
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

测试mysql数据库

写一个model.py

from django.db import models

class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()

执行以下命令

python3 manage.py makemigrations
python3 manage.py migrate

数据库

启动服务

python3 manage.py runserver 0.0.0.0:8000

通过: <你的服务器IP>:8000 ,可以访问到
Django

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值