• 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:执行容器内文件需要的权限

  • 相关阅读:
    winform 异步更新ui
    定时器的写法 winform
    延迟加载
    使用VS分析程序性能
    win7 C/C++,QT安装环境总结
    论文总结
    天舟一号
    硬盘 SMART 检测参数详解[转]
    碧桃花
    在C的头文件中定义的结构体,如何在cpp文件中引用
  • 原文地址:https://www.cnblogs.com/-wenli/p/13735296.html
Copyright © 2020-2023  润新知