win10使用docker部署django项目-入门

1.win10专业版安装:https://www.runoob.com/docker/windows-docker-install.html

(这里需要注意的是只有系统是专业版时才可以使用该方法安装docker,如果系统是社区版家庭版安装见:win10社区版安装)

2.准备一个最简单的django项目,如下图实现index地址的展示,在本机win10上使用python manage.py runserver已验证可正常运行

项目文件夹,除了下图红框的3个文件,其他文件是django项目下的常规文件,这个不用再多说

pip.conf   这是pip的配置文件,主要是替换下载源可选择阿里、清华、豆瓣等

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

requirements.txt 自己项目所需的依赖库

有两种生成方式

1.进入项目目录(包含manage.py文件的目录)打开终端输入 pip freeze > requirements.txt

在当前目录下会生成requirements.txt文件,但是此时生成的是整个虚拟环境需要的模块列表,可以看到依赖的文件有130个,而我们上面创建的项目其实并没有用到这么多的依赖文件,如果使用这个文件构建镜像,构建镜像的时间会非常长,不推荐这种方式。

2.仅生成本项目依赖的模块列表,使用 pipreqs,也是跟方法1一样,在项目目录中执行以下命令

pip3 install pipreqs
pipreqs ./

可以看到这次生成的依赖文件中只有django,跟本项目实际依赖的模块一致。

如果执行pipreqs ./ 后报错,提示 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 262: illegal multibyte sequence

则执行命令:pipreqs ./ --encoding=utf-8

Dockerfile

创建一个文件,名为Dockerfile,注意该文件没有后缀,内容如下:

FROM python:3.6
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY pip.conf /root/.pip/pip.conf
COPY requirements.txt /usr/src/app/
RUN pip install -r /usr/src/app/requirements.txt
RUN rm -rf /usr/src/app
COPY . /usr/src/app
CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8080"]

解释:

1、以官方库python:3.6为基础进行制作,实际是一个装有python3.6的Linux
2、运行命令创建新文件夹 /usr/src/app
3、确定工作路径
4、将本地的pip.conf复制到pip的根中进行替换
5、将requirements.txt复制到指定目录下
6、运行命令按照requirements.txt的内容进行pip安装
7、运行命令删除这个文件夹中的所有内容,-rf是递归强制删除
8、将整个项目复制到这个文件夹中
9、执行命令运行Django项目的启动文件,并开放8080端口

3.制作镜像

进入项目目录,执行dockerfile文件,执行命令 docker build -t test  .

test是镜像的名字,.表示当前文件夹,docker会自动寻找dockerfile文件并执行

如下图,系统会一步步的执行,如果失败了会回滚,如果这个过程中出现了超时的情况,大概率是没有更新镜像加速地址,docker镜像加速:https://www.runoob.com/docker/docker-mirror-acceleration.html

查看镜像文件,已经多了一个test镜像

4.运行容器

 docker run --name djangotest -p 8080:8080 -d test

  • --name djangotest :容器名称。
  • -p 8080:8080: 端口进行映射,将本地 8080 端口映射到容器内部的 8080 端口。
  • -d test: 设置容器在在后台一直运行。

5.进入容器

docker exec -it djangotest /bin/bash

默认进入到/usr/src/app目录,即之前在dockerfile中指定的项目路径,ls查看项目文件都在该目录下

6.访问项目

使用本机ip或localhost或虚拟机的ip都可成功访问项目

访问地址:

http://127.0.0.1:8080/app/index/

http://192.168.79.225:8080/app/index/   (docker虚拟机ip)

 

 

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值