docker部署Django应用

文章目录

    • 1. 环境准备
        • 获取python 3.7 镜像
        • 目录结构
    • 2. 使用dockerfile构建镜像
    • 3. 构建过程
        • 1) 上传文件
        • 2) 构建镜像
        • 3) 启动容器
    • 4. 验证

1. 环境准备

  • python 3.7 镜像
  • dockerfile
  • filezilla 工具

获取python 3.7 镜像

docker pull python:3.7

目录结构

mysite project里包含了一个user应用,目录结构如下
docker部署Django应用_第1张图片

2. 使用dockerfile构建镜像

在保证django应用可以正常启动的情况下,使用dockerfile构建镜像。

FROM python:3.7
ENV PATH /usr/local/bin: $PATH
ADD . /user/local/myapp/mysite
WORKDIR /user/local/myapp/mysite
RUN pip install -i https://pypi.douban.com/simple --trust -host=pypi.douban.com  -r requirements.txt
CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8001"]

指令解释:

指令 含义
FROM python:3.7 基于python 3.7镜像来构建
ENV PATH /usr/local/bin: $PATH 配置环境变量,基于PATH
ADD . /user/local/myapp/mysite 注: ADD包含2个参数 ,第一个参数 . 表示当前目录所有文件,第二个参数表示的是容器里的虚拟目录,目的是将当前目录的所有文件打包到虚拟容器里的/user/local/myapp/mysite 目录下。
WORKDIR /user/local/myapp/mysite 表示的是该应用在虚拟容器的工作路径为 /user/local/myapp/mysite
RUN pip install -i https://pypi.douban.com/simple --trust -host=pypi.douban.com -r requirements.txt 安装依赖,可以在requirements.txt文件里指定需要的依赖版本
CMD [ “python”, “./manage.py”, “runserver”, “0.0.0.0:8001”] 等价于 python manage.py runserver 0.0.0.0:8001, 在linux中执行需要加./

requirements.txt文件包含的内容:

django==2.0.3

3. 构建过程

1) 上传文件

   使用filezilla 将工程文件下除了venv文件的所有文件放到我们服务器上的任意一个位置,比如,我把mysite下目录放到了路径/root/python/myapp的目录下:
docker部署Django应用_第2张图片

2) 构建镜像

   切入到dockerfile所在目录,开始构建镜像,指令如下:

docker build -t mysite:v1 .

其中最后的点表示的是当前文件所在的目录包含的所有文件,构建过程如下:
docker部署Django应用_第3张图片
构建成功后,可以通过docker images查看构建成功后的镜像:
docker部署Django应用_第4张图片

3) 启动容器

有了镜像后,那么我们可以把容器给run起来了:

docker run --name mysite -p 8001:8001 -d mysite:v1

在这里插入图片描述
如果没有报错,那么表示容器就启动成功了, 如果报错了使用docker logs指令查看报错日志。

4. 验证

访问 http://116.62.146.90:8001/admin/login/?next=/admin/,可以成功,那么表示django已经部署到云端成功:
docker部署Django应用_第5张图片
如果不能访问,检查端口是否开放,云服务器的话需要配置安全组, 我的另外一篇文章里有介绍怎么配置安全组。
Docker部署nginx、配置域名

你可能感兴趣的:(docker,linux大杂烩,docker,django,linux,docker部署django)