[web-002]阿里云容器化部署django项目

本文介绍如何在Docker中构建和部署一个Django项目,包括创建Dockerfile、构建镜像、运行容器及在阿里云容器集群上部署的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 已经在/root/djanog-container创建了demo1这个django项目并成功运行

2.在/root/django-container下创建Dockerfile文件,内容如下
------------------
FROM ubuntu:16.04
MAINTAINER CXF <ttc@asb.com>

RUN apt-get update
RUN apt-get install python3 python3-pip -y
RUN pip3 install django==2.0.0

#demo1是项目root目录,这个目录下有个同名的子目录demo1,这是django项目的特殊设置
ADD demo1 /yettie/spider-monitor/
WORKDIR /yettie/spider-monitor/
EXPOSE 8000

CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]
------------------

3. 构建镜像
docker build . -t wy/spider-monitor:0.1

4. 启动镜像,将容器的端口跟宿主机的端口做关联 
docker run -d --rm -p 8000:8000 wy/spider-monitor:0.1 

5. 如果出错,以交互模式启动进入容器进行各种调试
docker run --rm -it wy/spider-monitor:0.1  /bin/bash

6. 访问一个正在运行的容器进行交互操作
docker exec -it containerID /bin/bash


7.阿里云容器集群:在阿里云创建一个swarm容器集群,2个节点,按量付费,一核2g
登录密码:weA123


8.阿里云容器集群:
    创建应用: spider-monitor:0.1 --> 使用镜像创建。

    需要先创建用户镜像:镜像与方案-->镜像-->美西1-->新建镜像-->创建镜像仓库-->美西1-->仓库名yettie-test-rep-->本地仓库(通过命令行推送镜像到镜像仓库)

    镜像仓库名  registry.us-west-1.aliyuncs.com/tanzhi-registry/yettie-test-rep    

    镜像名称:yettie-test-rep
    镜像性质:私有
    公网地址:docker pull registry.us-west-1.aliyuncs.com/tanzhi-registry/yettie-test-rep
    经典内网:docker pull registry-internal.us-west-1.aliyuncs.com/tanzhi-registry/yettie-test-rep
    VPC网络:docker pull registry-vpc.us-west-1.aliyuncs.com/tanzhi-registry/yettie-test-rep
    代码仓库:无
    镜像地域:美国西部 1 (硅谷)

9. 把镜像推送到容器
    9.1 在本地执行 docker images,出现如下信息
        REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
        wy/spider-monitor   0.1                 79957c7a0291        About an hour ago   477MB
    9.2 登录阿里云repository
        docker login --username=asb registry.us-west-1.aliyuncs.com
        密码 weA123
    9.3 打一个新的tag
        #docker tag 79957c7a0291 registry-vpc.us-west-1.aliyuncs.com/tanzhi-registry/yettie-test-rep:spider-monitor-0.1
        docker tag 79957c7a0291 registry.us-west-1.aliyuncs.com/tanzhi-registry/yettie-test-rep:spider-monitor-0.1
    9.4 将镜像push到repository
        #docker push registry-vpc.us-west-1.aliyuncs.com/tanzhi-registry/yettie-test-rep:spider-monitor-0.1
        docker push registry.us-west-1.aliyuncs.com/tanzhi-registry/yettie-test-rep:spider-monitor-0.1

10. 创建应用
    有两个ecs,因此要创建两个容器应用。这样每个ecs都有一个。网络类型选择host。一路按照提示走下来,能看到创建的两个。创建的时候,要注意,讲宿主机的8000端口
跟容器暴露出来的端口做关联。成功后,在公网访问两个主机的公网ip:8000,能看到web页面显示不同的容器ip地址。注意,安全组要放开8000端口。
    负载均衡47.254.50.119,选择http协议,前端后端都是8000,访问47.254.50.119轮流出现容器应用ip地址。如果前端80后端8000,也是可以的,也可能看到两个ip地址。
    
    

### Django 项目部署阿里云服务器最佳实践 #### 准备工作 确保本地开发环境已经安装并配置好 Python 和 pip 工具。对于生产环境中运行的 Django 应用程序,建议使用虚拟环境来管理依赖项。 #### 创建阿里云 ECS 实例 通过阿里云控制台创建一台新的 Elastic Compute Service (ECS)实例作为 Web 服务器。选择适合应用程序需求的操作系统镜像,推荐 Ubuntu Server LTS 版本[^1]。 #### 安装必要的软件包 连接至新创建的 ECS 实例并通过命令行工具更新操作系统以及安装所需的库文件: ```bash sudo apt update && sudo apt upgrade -y sudo apt install python3-pip nginx git -y ``` 为了简化后续操作流程,在此之后可以考虑安装 Docker 来容器化应用服务。 #### 配置 PostgreSQL 数据库 如果计划采用 PostgreSQL 作为数据库管理系统,则需进一步设置该组件。可以通过官方文档获取详细的指导说明[^2]。 #### 设置 Git 或其他版本控制系统 为了让代码能够顺利上传至远程主机上执行,应该事先准备好相应的仓库地址,并利用 SSH 密钥认证机制实现无密码克隆功能。 #### 构建与发布 Django 应用 完成上述准备工作以后就可以着手处理实际的应用构建环节了。这通常涉及到几个方面的工作: - 使用 `pip` 命令下载第三方模块; - 修改项目的 settings.py 文件指明静态资源路径等信息; - 运行迁移脚本来初始化数据表结构; 最后一步就是启动 gunicorn WSGI HTTP Server 并将其绑定到指定端口监听请求事件的发生。 #### Nginx 反向代理配置 编辑 `/etc/nginx/sites-available/default` 文件加入如下所示的内容片段以便于将来自客户端浏览器发出的数据流转发给后端进程进行解析响应。 ```nginx server { listen 80; server_name your_domain_or_IP; location / { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 重启 Nginx 生效更改后的设定参数即可让网站正式对外提供访问支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值