当前位置: 首页 > article >正文

windows系统开发环境使用docker打包Django程序部署至服务器Ubuntu系统中

正常创建开发Django项目即可,推荐使用虚拟环境开发 (virtualenv)

在Ubuntu安装docker
在windows系统安装docker 链接
需要启用WSL 2,这个可以在Microsoft store 下载Ubuntu系统
docker默认安装在c盘,会占用很多空间,可以下载下来使用命令行安装
在上述windows下载docker页面下拉即可看到命令行安装选项
自定义安装位置

start /w "" "Docker Desktop Installer.exe" install --backend=wsl-2 --installation-dir=D:\xxx\program\docker --wsl-default-data-root=D:\xxx\program\wsl --accept-license

使用如下命令验证docker安装成功

docker --version

进入Django项目
创建requirements.txt文件,列出来素有python依赖,可以手动列出,也可是使用一下命令生成

pip freeze > requirements.txt

创建Dockerfile文件

# 使用官方 Python 镜像作为基础镜像
FROM python:3.12.4
# 如果后续运行不成功可以先把该镜像pull下来

# 设置工作目录
WORKDIR /app

# 将项目文件复制到容器中
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 暴露 Django 默认端口
EXPOSE 8000

# 设置环境变量避免生成 pyc 文件
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# 启动 Django 开发服务器
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

使用以下命令构建docker镜像:

docker build -t my_django_project .

构建完成后可以启动服务器验证:

docker run -p 8000:8000 my_django_project

如果能够正常访问继续以下操作

选择1
将镜像推送到docker hub
然后在阿里云服务器Ubuntu系统中下载
选择2
导出为tar文件传输到阿里云Ubuntu

#打包
docker save -o my_django_project.tar my_django_project
#阿里云 加载镜像
sudo docker load -i my_django_project.tar

查看已有镜像:

启动容器并暴露端口:

sudo docker run -p 8000:8000 <your-dockerhub-username>/my_django_project:latest

http://www.kler.cn/a/396272.html

相关文章:

  • 机器学习 决策树
  • 使用React和Vite构建一个AirBnb Experiences克隆网站
  • 海思3403对RTSP进行目标检测
  • JDBC-Mysql 时区问题详解
  • 【SpringBoot】20 同步调用、异步调用、异步回调
  • 基于STM32的智能家居安防系统设计
  • PDF编辑的好东西
  • 【动手学电机驱动】 STM32-FOC(7)MCSDK Pilot 上位机控制与调试
  • vue3:computed
  • 腾讯IM web版本实现迅飞语音听写(流式版)
  • Vagrant 没了 VirtualBox 的话可以配 Qemu
  • 自动驾驶系列—自动驾驶中的短距离感知:超声波雷达的核心技术与场景应用
  • Linux:进程间通信
  • 每日一练 | 包过滤防火墙的工作原理
  • 什么是C++中的常量表达式?有什么用途?
  • 三菱变频器A800逆变器模块及整流桥模块的检查方法
  • 【计算机网络】TCP协议特点1
  • 前端知识点---Window对象(javascript)了解
  • mybatis-spring-boot-starter和mybatis-plus-spring-boot3-starter冲突
  • 更改 Jupyter Notebook 中文件的存放位置
  • PHP承兑汇票识别API-承兑汇票如何快速识别-私有化部署集成
  • 探索 HTML 和 CSS 实现的模拟时钟
  • 鸿蒙学习生态应用开发能力全景图-赋能套件(1)
  • 机器学习:梯度提升树(GBDT)——基于决策树的树形模型
  • 面试时问到软件开发原则,我emo了
  • swagger (一)导出iOS包