zoukankan      html  css  js  c++  java
  • Docker实践:容器化部署Python应用

    简单应用部署

    一、目录结构:

    └── Pythonpro #目录
      └── test.py #文件
      └── requirements.txt #文件
      └── Dockerfile    #文件

    二、编写Dockerfile文件

    # 基于镜像基础
    FROM python:3.6.4
    # 创建代码文件夹工作目录 /code 
    RUN mkdir /code 
    # 复制当前代码文件到容器中 /code 
    COPY . /code 
    # 安装所需的包
    RUN pip install -r /code/requirements.txt -i https://pypi.douban.com/simple
    # 指定cmd的工作目录 /code
    WORKDIR /code
    #容器启动时执行的命令
    CMD ["python","test.py"]

    三、创建容器镜像

    docker build -t test .

    四、运行容器

    docker run -it  --name test --restart always --privileged=true python-test

    --name:指定容器的名字为python-test,test是刚刚构建的镜像。

    --restart:always 容器退出时总是重启。

    --privileged=true:执行容器内文件需要的权限。

    Django应用容器化

     一、目录结构,我这里假设这个目录存在于/home/Pythonpro。

    └── Pythonpro                #目录
        └── manage.py      #文件
        └── 主项目             #目录
        └── apps                #目录
        └── requirements.txt  #文件
        └── Dockerfile      #文件
        └── run.sh        #文件

    run.sh脚本

    python /code/manage.py runserver 0.0.0.0:8000

    二、编写Dockerfile文件

    FROM python:3.6.4
    
    RUN mkdir /code 
    &&apt-get update 
    &&apt-get -y install freetds-dev 
    &&apt-get -y install unixodbc-dev
    COPY . /code 
    RUN pip install -r /code/requirements.txt -i https://pypi.douban.com/simple
    WORKDIR /code
    
    CMD ["/bin/bash","run.sh"]

    三、构建镜像 

    docker build -t  webtest .  

    四、运行容器

    docker run -it -p 6500:8000 -v /home/Pythonpro:/code --name web --restart always --privileged=true webtest

         -p:把容器的8000端口映射到宿主机6500

         -v:主机的目录/home/Pythonprot映射到容器的目录/code

         --name:指定容器的名字为web,webtest刚刚构建的镜像

         --restart:always 容器退出时总是重启

         --privileged=true:执行容器内文件需要的权限

  • 相关阅读:
    「七天自制PHP框架」第四天:模型关联
    「七天自制PHP框架」第三天:PHP实现的设计模式
    「七天自制PHP框架」第二天:模型与数据库
    一个例子简要说明include和require的区别
    解读Laravel,看PHP如何实现Facade?
    Laravel是怎么实现autoload的?
    Laravel表单提交
    Laravel的console使用方法
    PHP控制反转(IOC)和依赖注入(DI)
    PHP解耦的三重境界(浅谈服务容器)
  • 原文地址:https://www.cnblogs.com/-wenli/p/13735296.html
Copyright © 2011-2022 走看看