在配置这个服务之前,应该对docker的基本安装与使用应该很熟悉了。下面开始直接不如正题

1.让我们创建一个名为myproject的空目录,并在src名称内添加另一个文件夹。src应该包含django项目。为了测试目的,让一个简单的django项目在名为mydjango的内部。

2.让我们在myproject中创建一个子目录并命名为config。让我们把一个requirement.pip文件放到配置文件中,然后写下这些行:

  1. Django==1.10
  2. gunicorn==19.6.0
  3. psycopg2==2.6.2

记住: 这里面包含的是你第一次创建时会下载的安装包,如果你少装了或者不清楚安装什么,也可以在你的doker服务起来之后进去安装,例如你的docker web服务的ID是123dsfsdf,你可以使用命令

  1. # docker exec -it 123dsfsdf /bin/sh
  2. # pip install ***

3.现在,做一个Dockerfile内部的myproject。这应该包含以下几行: 

  1. FROM python:3.5
  2. ENV PYTHONUNBUFFERED 1
  3. RUN mkdir /config
  4. ADD /config/requirements.pip /config/
  5. RUN pip install -r /config/requirements.pip
  6. RUN mkdir /src;
  7. 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 添加,具体如下

  1. version: '2'
  2. services:
  3. nginx:
  4. image: nginx:latest
  5. container_name: ng01
  6. ports:
  7. - "8000:8000"
  8. volumes:
  9. - ./src:/src
  10. - ./config/nginx:/etc/nginx/conf.d
  11. depends_on:
  12. - web
  13. web:
  14. build: .
  15. container_name: dg01
  16. command: bash -c "python manage.py makemigrations && python manage.py migrate && gunicorn mydjango.wsgi -b 0.0.0.0:8000"
  17. depends_on:
  18. - db
  19. volumes:
  20. - ./src:/src
  21. expose:
  22. - "8000"
  23.  
  24. db:
  25. image: postgres:latest
  26. container_name: ps01

注意:image 所使用的都是你本地已经存在的镜像,如果不存在会去网上自行下载,不过这样会很耽误时间。

这样一切结束后,你会发现在你的服务器上启动了三个服务dj01, ps01, ng01。

如果此时你还不是很明白项目的个文件存档路径的话,这里列出自己的作为参考

  1. ── myproject
  2. ├── src
  3. ├── mydjango
  4. ├── manage.py
  5. ├── config
  6. ├── requirements.pip
  7. ├── nginx
  8. ├── mydjango.conf
  9. ├── Dockerfile
  10. └── docker-compose.yml

当让。此时你的web还是不能访问你的外网环境的,需要你在nginx下自行配置

6.现在让我们写一个名为myproject的config文件夹内的nginx 配置文件,并将其放在一个名为nginx的子目录中。mydjango.conf

  1. upstream web {
  2. server web:8000;
  3. }
  4.  
  5. # portal
  6. server {
  7. location / {
  8. proxy_pass http://web/;
  9. }
  10. listen 80;
  11. server_name localhost;
  12. }

这样恭喜你完成了整个服务的部署

最后提供几个命令用于查看docker

用于shell访问

  1. #Nginx
  2. docker exec -ti nginx bash
  3.  
  4. #Web
  5. docker exec -ti web bash
  6.  
  7. #Database
  8. docker exec -ti db bash

用于日志

  1. #Nginx
  2. docker-compose logs nginx
  3. #Web
  4. docker-compose logs web
  5. #DB
  6. docker-compose logs db

  

 

 

Djano + Nginx + docker配置与管理的更多相关文章

  1. Nginx https加密以及nginx日志配置与管理

    Nginx https加密以及nginx日志配置与管理 使用Nginx的优点Nginx作为WEB服务器,Nginx处理静态文件.索引文件.自动索引的效率非常高.Nginx作为代理服务器,Nginx可以 ...

  2. 使用nginx+docker配置https负载均衡

    了解Docker Docker是一个golang编写的开源轻量级的.可移植的.自给自足的容器,Docker主要应用在以下场景: web应用的自动化打包和发布: 自动化测试和持续集成.发布: 在服务型环 ...

  3. docker配置远程管理端口

    date: 2019-07-19  17:30:01 author: headsen chen notice :个人原创 Ubuntu18用这篇文章 ubuntu 16用另外一篇文章 ubuntu 1 ...

  4. docker配置nginx做反向代理管理tomcat应用

    由于业务开始复杂,单一tomcat已经不足以满足业务需求,多tomcat部署起来不方便而且面临域名解析问题,因此开始增加反向代理,由于docker的易用性,便使用docker管理各个应用. docke ...

  5. 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语

    目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...

  6. CentOS7系列--5.2CentOS7中配置和管理Docker

    CentOS7配置和管理Docker Docker是操作系统级别的虚拟化工具,它能自动化布署在容器中的应用 1. 安装Docker 1.1. 安装Docker相关软件 [root@server1 ~] ...

  7. 安装配置Rancher管理docker

    原文:安装配置Rancher管理docker 版权声明:本文为博主原创文章,转载请注明地址http://blog.csdn.net/tianyaleixiaowu. https://blog.csdn ...

  8. Azure中配置和发布 Nginx docker到互联网

    当Azure build一个Niginx docker 镜像时,无法通过浏览器访问这个镜像,于是想到了把这个网站发布到互联网中,这样就能验证网站是否正确. 本问跳过如何创建Azure Ubantu的虚 ...

  9. Nginx总结(八)Nginx服务器的日志管理及配置

    前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要 ...

随机推荐

  1. 制作.bat文件运行指定目录的.bat或者exe

    上代码: goto start call "D:/Program Files/activeMQ/apache-activemq-5.3.2-bin/apache-activemq-5.3.2 ...

  2. react-redux: modal

    1.actionTpye export const INCREMENT = 'INCREMENT'; export const DECREMENT = 'DECREMENT'; export cons ...

  3. 如何在PostgreSQL中建只读账号

    转: 如何在PostgreSQL中建只读账号 Posted on 2014-01-21 22:00:15 by osdba 在PostgreSQL中并没有CREATE TABLE权限名称,这是与其它数 ...

  4. How do I create zip file in Servlet for download?

    原文链接:https://kodejava.org/how-do-i-create-zip-file-in-servlet-for-download/ The example below is a s ...

  5. 测试中认识 sqlite

    1.SQLite,是一款轻型的数据库:简单, 轻松的API 单词速记中单词离线包也用到sqlite 百度了一下,基本的使用语句: .help .quit sqlite3 testDB.db 在当前目录 ...

  6. <tf-idf + 余弦相似度> 计算文章的相似度

    背景知识: (1)tf-idf 按照词TF-IDF值来衡量该词在该文档中的重要性的指导思想:如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词. ...

  7. 互联网公司面试必问的mysql题目(下)

    这是mysql系列的下篇,上篇文章地址我附在文末. 什么是数据库索引?索引有哪几种类型?什么是最左前缀原则?索引算法有哪些?有什么区别? 索引是对数据库表中一列或多列的值进行排序的一种结构.一个非常恰 ...

  8. Java关闭线程的安全方法

    Java之前有一个api方法可以直接关闭线程,stop(),由于这个方法是强制性地关闭线程,有的时候会发生错误,之后就取消了,现在可用的方法主要有两种: 1.  在线程中加入一个成员变量,当一个fla ...

  9. webstorm-前端javascript开发神器中文教程和技巧分享(转)

    webstorm是一款前端javascript开发编辑的神器,此文介绍webstorm的中文教程和技巧分享. webstorm8.0.3中文汉化版下载:百度网盘下载:http://pan.baidu. ...

  10. OpenSSH 使用技巧

    1. 取消 OpenSSH 初次连接 yes 确认 在脚本中有时会使用ssh进行远程连接操作,如果是第一次 ssh 连接往往会提示你是否确认连接并要求你输入yes, 才能继续.如何才能避免这个步骤呢? ...