docker多镜像+nginx+django环境部署

本文介绍了使用多Docker部署Django项目的方法。包括从Docker Hub拉取Nginx镜像,配置Nginx和uWSGI,使用Supervisord工具,启动Django和Nginx容器,最后在浏览器验证部署成功。还提及了Nginx容器调用多个Django容器的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇描述了使用多docker 布置django。

其中nginx 在一个docker里面,django+uwsgi在一个docker里面。

1   镜像来源

     nginx镜像直接从docker hub 中拉取,docker pull nginx

     diango镜像采用 https://www.cnblogs.com/huanhuaqingfeng/p/11059168.html 中配置生成的django1镜像

2,nginx conf 配置如下:

     default.conf文件内容:

upstream django{
         # server unix:///home/andrew/django/abuild/abulid.sock;
         server 192.168.21.59:8022;
}

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name 192.168.21.59;//宿主机ip地址
        charset utf-8;

        client_max_body_size 75M;


       location /media {
             alias /home/andrew/testdjango/media;
       }

       location /static {
            alias /home/andrew/testdjango/static;
       }  

       location / {
           uwsgi_pass django;
           include /etc/nginx/uwsgi_params;

       }
}

 

3, uwsgi.ini 文件       

     [uwsgi]
         socket = :8000
         chdir = /home/andrew/testdjango/   //我创建的django测试工程testdjango的目录
         wsgi-file = testdjango/wsgi.py
         touch-reload = /home/andrew/testdjango/reload

         processes = 2
         threads = 4

         chmod-socket = 664
         chown-socket = testdjango:nginx

         vacuum = true

         py-autoreload=1

 

4 ,  supervisord 工具使用

         生成supervisord.conf文件:

   echo_supervisord_conf > /etc/supervisord.conf

         添加我们的工程到supervisord.conf中:         

         [program:testdjango]
         command=/usr/local/bin/uwsgi --ini /home/andrew/testdjango/uwsgi.ini
         directory=/home/andrew/testdjango/
         startsecs=0
         stopwaitsecs=0
         autostart=true
         autorestart=true

 

5, 启动django:

       启动django 镜像:

           docker run -it -p 8022:8000 -v /home/andrew/django/test/project:/home/andrew ubuntu:django1 bin/bash

           -p: 8022:8000 表示把宿主机的8022 端口映射到容器的8000 端口上

           -v /home/andrew/django/test/project:/home/andrew:/home/andrew/django/test/project这是宿主机的目录,下面放着我的django工程,将其挂载到容器的/home/andrew目录                  上

       启动django工程:

           在启动的容器中执行如下命令

           supervisorctl -c /etc/supervisord.conf restart testdjango

 

6, 启动nginx:

      启动nginxjingx:

      docker run -it -p 8089:80 --link practical_robinson:web -v /home/andrew/django/test/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf nginx bin/bash

      --link practical_robinson:web:

              practical_robinson: docker ps 查看,django1 镜像启动后生成的容器名字,当然也可以在运行django 镜像时通过--name指定容器的名字。

             web:随意定义的  

      重启nginx:

          在容器中重启nginx  service nginx restart

 

7,在浏览器上方位 http://192.168.21.59:8089/admin

    出现django的登录页面,ok ,成功了。

 

8,nginx 容器调用多个django 容器

     1)修改default.conf

           upstream django{         
                server 192.168.21.59:8022;

                server 192.168.21.59:8023;
           }

      2) 启动运行

          docker run -it -p 8022:8000 -v /home/andrew/django/test/project:/home/andrew ubuntu:django1 bin/bash

          docker run -it -p 8023:8000 -v /home/andrew/django/test/project:/home/andrew ubuntu:django1 bin/bash

         docker run -it -p 8089:80 --link modest_chatelet:web1 --link cranky_liskov:web2  -v /home/andrew/django/test/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf nginx bin/bash

      

 

转载于:https://www.cnblogs.com/huanhuaqingfeng/p/11075718.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值