极简方式,部署django
本人是Docker小白,听说Docker部署程序很方便,在看了一系列的Docker体系结构以后,明白了Docker的运行过程,但是想想要自己去写一系列的操作还是挺麻烦的。
在看过django的镜像以后,突然豁然开朗,觉得这是对小白来说,最简单的部署方式呀。
先看一下官方的示例:(这里了解步骤即可,先不要照做)

1.在工程目录文件下,建立Dockerfile文件,并在文件内写入
FROM django:onbuild

在该目录下,依次执行
(构建容器)
$ docker build -t my-django-app .
(运行容器)
$ docker run --name some-django-app -d my-django-app
然后就可以输入
http://container-ip:8000
当然,以上的python 使用的3.4版本。如果要切换版本的话,Dockerfile 复制粘贴django的原始Dockerfile文件,修改python基于的镜像版本即可
更多请参见:
https://hub.docker.com/_/django?tab=description
特别注意:
上面做法的思路是没有错的,但是这个镜像是三年前做的。作者已经停止更新和维护了,只能用作学习用。
在正式使用的时候,还是要修改一些内容
1.添加pip的国内镜像缓存
2.升级pip的版本,不然有些requirements.txt的安装包会出错
3.在requirements.txt中引入django的安装
Dockerfile文件如下:
FROM python:3.5 RUN apt-get update \ && apt-get install -y --no-install-recommends \ postgresql-client \ && rm -rf /var/lib/apt/lists/* \ && pip install --upgrade pip WORKDIR /usr/src/app COPY requirements.txt ./ #设置pip的镜像缓存 COPY pip.conf ~/.pip/pip.conf RUN pip install -r requirements.txt COPY . . EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
pip.conf如下
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host=mirrors.aliyun.com
requirements.txt如下
django==2.1.2
如果想访问已经发布的服务。需要把docker服务的端口映射到 宿主机的端口号上。
并且一定要确保宿主机的端口是开放的(具体打开端口的规则,在阿里/腾迅云上有)
上面的部署方式,也并不完美。
因为服务提供的方式是使用 python manage.py runsever的方式,而不是类似于nginx ,apache一类的专用服务器提供的。
所以部署,还需要把 nginx 的内容打包到镜像中。
浙公网安备 33010602011771号