zoukankan      html  css  js  c++  java
  • Docker打包python flask服务

    1、将宿主机上python环境保存到requirements.txt
    pip3 freeze >requirements.txt
    
    
    2、新建sources.list文件(apt的源文件)
    sources.list具体内容如下:
    $ vi sources.list
    
    deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
    deb http://archive.canonical.com/ubuntu xenial partner
    deb-src http://archive.canonical.com/ubuntu xenial partner
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
    
    
    3、准备Dockerfile文件
    # 指定所创建镜像的基础镜像
    FROM nvidia/cuda:9.0-cudnn7-devel
    LABEL author="gtmap"
    #用ubuntu国内源替换默认源
    RUN rm /etc/apt/sources.list
    COPY sources.list /etc/apt/sources.list
    
    WORKDIR /work_path //docker环境中工作路径
    ADD . /workpath //将文件拷贝到docker中的文件夹下
    
    RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
    #RUN sed -i s@/http/@/https/@g /etc/apt/sources.list.d/cuda.list
    #RUN sed -i s@/http/@/https/@g /etc/apt/sources.list.d/nvidia-ml.list
    RUN sed -i s@/http/@/https/@g /etc/apt/sources.list
    RUN sed -i s@/developer.download.nvidia.com/@/developer.download.nvidia.cn/@g /etc/apt/sources.list.d/cuda.list
    RUN echo > /etc/apt/sources.list.d/nvidia-ml.list
    RUN echo > /etc/apt/sources.list.d/cuda.list
    
    RUN apt-get update && apt-get install wget
    
    #安装python
    RUN apt-get update --fix-missing && 
    apt-get install vim 
    python3-pip 
    python3-dev 
    python-opencv 
    python3-tk 
    libjpeg-dev 
    libfreetype6 
    libfreetype6-dev 
    zlib1g-dev 
    cmake 
    cython 
    git 
    libxml2 
    libxml2-dev 
    libcups2-dev 
    -y
    # 更新pip
    RUN python3 -m pip install --upgrade pip -i https://pypi.douban.com/simple
    
    # 安装python依赖库
    RUN python3 -m pip install -r requirements.txt -i https://pypi.douban.com/simple(这一步可以先不执行,再创建好镜像之后,再在镜像中安装)
    
    # Add CUDA to the path
    ENV PATH $PATH:/usr/local/cuda/bin
    ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/cuda/lib64
    ENV CUDA_HOME /usr/local/cuda
    RUN ldconfig
    
    # 设置docker容器中编码格式
    ENV LANG C.UTF-8
    
    # 声明镜像内服务监听的端口
    EXPOSE 8888
    
    # CMD为启动镜像后执行的脚本
    CMD ["python", "manage.py"]
    
    
    4、创建docker镜像文件
    docker build -t hello . //-t 镜像名称 -f dockerfile文件路径 .代表Dockerfile在当前路径下
    
    
    5、启动docker镜像文件
    docker run -it -p 8888:8888 hello // 守护模式启动镜像hello
    
    
    6、修改后保存镜像
    docker commit -m "" -a "" 容器id 镜像源:版本
    说明:-m 提交的说明
    -a 提交的用户
    举例:
    docker commit -m '修改代码' -a 'gtmap' cb016b4263b6 target_identification:v2
    
    
    7、保存镜像为tar包
    docker save target_identification:v2 -o ./target_identification.tar
    众志成城,共抗疫情
  • 相关阅读:
    数据库分页
    oracle查询某一个字段的数量总和
    JSON.stringify()和JSON.parse()
    oracle查询以当前年份为准的近些年数据
    关于oracle中日期使用
    最简单的js确认框!
    oracle插入数据时解决和旧数据id的冲突
    CentOS查看内核版本,位数,版本号
    CentOS 使用命令设置代理
    CentOS 编译源码安装MySQL-5.6.16
  • 原文地址:https://www.cnblogs.com/wuli1427102168/p/12795276.html
Copyright © 2011-2022 走看看