Djano + Nginx + docker配置与管理
在配置这个服务之前,应该对docker的基本安装与使用应该很熟悉了。下面开始直接不如正题
1.让我们创建一个名为myproject的空目录,并在src名称内添加另一个文件夹。src应该包含django项目。为了测试目的,让一个简单的django项目在名为mydjango的内部。
2.让我们在myproject中创建一个子目录并命名为config。让我们把一个requirement.pip
文件放到配置文件中,然后写下这些行:
Django==1.10
gunicorn==19.6.0
psycopg2==2.6.2
记住: 这里面包含的是你第一次创建时会下载的安装包,如果你少装了或者不清楚安装什么,也可以在你的doker服务起来之后进去安装,例如你的docker web服务的ID是123dsfsdf,你可以使用命令
# docker exec -it 123dsfsdf /bin/sh
# pip install ***
3.现在,做一个Dockerfile
内部的myproject。这应该包含以下几行:
FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN mkdir /config
ADD /config/requirements.pip /config/
RUN pip install -r /config/requirements.pip
RUN mkdir /src;
WORKDIR /src
如果你对dockerfile里面的命令有什么不熟悉的可以先去了解了解docker的基本命令。
4.然后开始创建一个名为docker-compose.yml
中的myproject目录,用于docker-compose up 启动时执行的脚本路径。
该docker-compose.yml
文件描述了制作您的应用的服务。在这里,我们需要一个Web服务(Django + Gunicorn),一个数据库(Postgres)和代理服务器(Nginx)。它还描述了这些服务将使用哪些Docker映像,它们将如何链接在一起,以及它们可能需要装入容器内的任何卷。最后,该docker-compose.yml
文件描述了这些服务公开哪些端口。有关此文件如何工作的更多信息,不要忘了 通过运行将docker-compose 添加,具体如下
version: '2'
services:
nginx:
image: nginx:latest
container_name: ng01
ports:
- "8000:8000"
volumes:
- ./src:/src
- ./config/nginx:/etc/nginx/conf.d
depends_on:
- web
web:
build: .
container_name: dg01
command: bash -c "python manage.py makemigrations && python manage.py migrate && gunicorn mydjango.wsgi -b 0.0.0.0:8000"
depends_on:
- db
volumes:
- ./src:/src
expose:
- "8000" db:
image: postgres:latest
container_name: ps01
注意:image 所使用的都是你本地已经存在的镜像,如果不存在会去网上自行下载,不过这样会很耽误时间。
这样一切结束后,你会发现在你的服务器上启动了三个服务dj01, ps01, ng01。
如果此时你还不是很明白项目的个文件存档路径的话,这里列出自己的作为参考
── myproject
├── src
│ ├── mydjango
│ ├── manage.py
├── config
│ ├── requirements.pip
│ ├── nginx
│ ├── mydjango.conf
├── Dockerfile
└── docker-compose.yml
当让。此时你的web还是不能访问你的外网环境的,需要你在nginx下自行配置
6.现在让我们写一个名为myproject的config文件夹内的nginx 配置文件,并将其放在一个名为nginx的子目录中。mydjango.conf
upstream web {
server web:8000;
} # portal
server {
location / {
proxy_pass http://web/;
}
listen 80;
server_name localhost;
}
这样恭喜你完成了整个服务的部署
最后提供几个命令用于查看docker
用于shell访问
#Nginx
docker exec -ti nginx bash #Web
docker exec -ti web bash #Database
docker exec -ti db bash
用于日志
#Nginx
docker-compose logs nginx
#Web
docker-compose logs web
#DB
docker-compose logs db
Djano + Nginx + docker配置与管理的更多相关文章
- Nginx https加密以及nginx日志配置与管理
Nginx https加密以及nginx日志配置与管理 使用Nginx的优点Nginx作为WEB服务器,Nginx处理静态文件.索引文件.自动索引的效率非常高.Nginx作为代理服务器,Nginx可以 ...
- 使用nginx+docker配置https负载均衡
了解Docker Docker是一个golang编写的开源轻量级的.可移植的.自给自足的容器,Docker主要应用在以下场景: web应用的自动化打包和发布: 自动化测试和持续集成.发布: 在服务型环 ...
- docker配置远程管理端口
date: 2019-07-19 17:30:01 author: headsen chen notice :个人原创 Ubuntu18用这篇文章 ubuntu 16用另外一篇文章 ubuntu 1 ...
- docker配置nginx做反向代理管理tomcat应用
由于业务开始复杂,单一tomcat已经不足以满足业务需求,多tomcat部署起来不方便而且面临域名解析问题,因此开始增加反向代理,由于docker的易用性,便使用docker管理各个应用. docke ...
- 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语
目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...
- CentOS7系列--5.2CentOS7中配置和管理Docker
CentOS7配置和管理Docker Docker是操作系统级别的虚拟化工具,它能自动化布署在容器中的应用 1. 安装Docker 1.1. 安装Docker相关软件 [root@server1 ~] ...
- 安装配置Rancher管理docker
原文:安装配置Rancher管理docker 版权声明:本文为博主原创文章,转载请注明地址http://blog.csdn.net/tianyaleixiaowu. https://blog.csdn ...
- Azure中配置和发布 Nginx docker到互联网
当Azure build一个Niginx docker 镜像时,无法通过浏览器访问这个镜像,于是想到了把这个网站发布到互联网中,这样就能验证网站是否正确. 本问跳过如何创建Azure Ubantu的虚 ...
- Nginx总结(八)Nginx服务器的日志管理及配置
前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要 ...
随机推荐
- iOS开发之谈谈App应用的架构搭建(推荐给大家看)
1.iOS应用架构谈 开篇: 2.iOS应用架构谈 view层的组织和调用方案: 3.iOS应用架构谈 网络层设计方案: 4.iOS应用架构谈 本地持久化方案及动态部署: 5.iOS应用架构谈 组件化 ...
- Windows10重启之后总是将默认浏览器设置为IE
换了一台电脑之后,发现系统重启之后总是会把我的默认浏览器设置为IE,而自从用上了Chrome,我对他爱不释手. 上网找了不少文章,都建议使用系统自带的设置进行默认浏览器的设置,试了三四次,完全不起任何 ...
- 人生苦短之我用Python篇(遍历、函数、类)
#遍历 info = {'key1':'value1','key2':'value2','key3':'value3'} #方式一 for i in info: print(i,info[i]) #方 ...
- Windows GVLK密钥对照表(KMS激活专用
以下key来源于微软官网:https://technet.microsoft.com/en-us/library/jj612867.aspx Windows Server 2016 操作系统 KMS激 ...
- Hibernate之mappedBy【必读】
[http://www.cnblogs.com/redcoatjk/p/4236445.html] 一.mappedBy 单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段 数据库中1 ...
- 剑指offer-第六章面试中的各项能力(数字在排序数组中出现的次数)
题目:统计一个数字在排序数组中出现的次数. 思路:采用二分查找,找到该数字在数组中第一次出现的位置,然后再找到组后一个出现的位置.两者做减法运算再加1.时间复杂度为O(logn) Java代码: // ...
- Swift-自定制带有特殊按钮TabBar
---恢复内容开始--- 封装了一个带有中间凸起的自定制Tabbar,包含4个普通按钮和中间的一个凸起按钮- 首先封装了一个UIButton,重新设置了UIButton的图片位置和label位置 使用 ...
- NIOS EDS最容易出错的地方
越来越多的人使用NIOS II.毕竟,NIOS II是世界上功能最多的软核处理器. NIOS EDS通常是在装QUARTUS的时候一起装上的.通常我们在用的时候都是以模板建立工程的. 在很多情况下,我 ...
- linux文件系统命令和分区 挂载
文件系统命令df [选项][挂载点]选项:-a 显示所有的文件系统信息,包括特殊文件,如/proc,/sysfs-h 使用习惯单位显示容量,如KB,MB或GB等-T 显示文件系统类型-m 以MB为单位 ...
- .NET4缓存过期策略摘录
以下是网上搜索的资料,仅供参考: 资料一:ASP.NET缓存中Cache过期的三种策略(转自51CTO) 我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加ASP.NE ...