美文网首页python我爱编程
云服务器上利用Docker部署Django项目

云服务器上利用Docker部署Django项目

作者: kafca | 来源:发表于2018-03-03 12:52 被阅读0次

    一、准备条件

    1. 购买装有Linux系统的云服务器
    2. 添加安全组规则
      请参考官方文档
    3. 安装Docker
    4. 可运行的Django项目

    二、Dockerfile编写

    在项目文件夹下新建名为Dockerfile的文件,内容如下

    FROM python:3.5
    ENV PYTHONUNBUFFERED 1
    RUN mkdir /code
    WORKDIR /code
    ADD requirements.txt /code/
    RUN pip install -r requirements.txt
    ADD . /code/
    

    把项目运行需要用到的第三方库写在requirements.txt
    例如本博客使用的requirements.txt

    mongoengine
    Django==1.11
    mysqlclient
    Markdown
    Pygments
    

    其中mongoengine用于使用MongoDB、Markdown用于把markdwon语法转换成html代码、Pygments用于代码高亮,这些库具体的用法请自行探讨

    以上可根据项目灵活选择需要安装的库

    三、docker-compose.yml 文件的配置

    在项目文件夹下新建名为docker-compose.yml的文件,如果使用mysql数据库的话,可以配置如下(使用其他数据库配置方法大概相似)

    version: '2'
    services:
      db:
        image: mysql
        expose:
          - "3306"
        ports:
          - 3306:3306
        environment:
          - MYSQL_DATABASE=YourDatabaseName
          - MYSQL_ROOT_PASSWORD=YourPassWord
    
      phpmyadmin:
        image: phpmyadmin/phpmyadmin
        ports:
        - 6061:80
        links:
        - db  
    
      web:
        build: .
        command: python manage.py runserver 0.0.0.0:80
        volumes:
          - .:/code
        ports:
          - "80:80"
        links:
          - db
    



    其中PHPmyadmin用来可视化mysql数据库,这里让它运行在6061端口

    更多关于Docker的知识请参考官方文档

    四、配置Django项目的settings.py的数据库设置

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': YourDatabaseName,
            'USER' :  root,
            'PASSWORD'  : YourPassWord,
            'HOST'      : YourIPAddress,
            'PORT'      : 3306,
        }
    }
    



    注意,NAMEPASSWORD必须根Dockercompose.yml中配置的数据库名和密码一致

    五、下载启动镜像

    把项目代码上传到服务器,进入项目文件夹,命令行中输入如下命令

    docker-compose up

    该命令会下载docker-compose.yml中给定的镜像和Dockerfile中需要使用的库(如果以后要扩展requirements.txt中的库的话,需要执行docker-compose build命令重建镜像),下载完成之后会尝试运行镜像。


    ps: 如果第一次启动不成功的话请多尝试几次


    一切顺利的话会看到如下提示


    image


    在浏览器上输入IP地址就可以访问到您的Django应用了


    访问http://yourIP:6061可以看到phpMyadmin的登录界面


    image


    输入您的数据库用户名密码即可登录,登陆之后您会发现数据库里面没有数据表,这是因为还没有创建数据表

    六、创建数据表

    命令行中输入以下命令


    查看正在运行的docker容器


    docker ps


    进入主容器(运行django项目的容器)


    docker exec -it NameOfYourContainer /bin/bash


    建表


    python manage.py makemigrations


    python manage.py migrate


    最后,开始愉快的编码吧!

    以上教程若有任何错误请留言指出,有疑惑欢迎联系我

    相关文章

      网友评论

        本文标题:云服务器上利用Docker部署Django项目

        本文链接:https://www.haomeiwen.com/subject/yvutfftx.html