docker部署Flask项目

docker部署Flask项目

    • 安装指令
    • 编写Dockerfile文件
    • 构建镜像
    • 启动容器

安装指令

服务器centos7,python==3.6,从dockerHub拉取镜像

docker search centos-python3.6 #寻找需要的镜像
docker pull zhouyang/centos-python3.6 #拉取镜像

docker部署Flask项目_第1张图片

#查看下载好的镜像
docker images 
#创建容器
docker run -d --name pt1.2 --gpus all centos-python3.6:latest 
#启动容器
docker run exec -it pt1.2 /bin/bash 
#将宿主机代码copy到容器
docker cp 宿主机目录 容器名:容器目录
#查看cuda驱动
nvidia-smi
#查看nvcc版本
nvcc -V

question1: nvcc -v 提示未找到命令
1、查看docker下cuda是否安装好

#查看cuda位置
cd /usr/local/cuda-10.2
#打开、编辑环境变量的配置文件
vim ~/.bashrc
#在文件末尾添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64
export PATH=$PATH:/usr/local/cuda-10.2/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.2
#刷新~/.bashrc文件使其生效
source ~/.bashrc
#重新使用nvcc命令查看CUDA版本
nvcc -V
#在docker下安装环境
pip install -r -requirments.txt -i https://mirror.baidu.com/pypi/simple

question1: ImportError: libXrender.so.1: cannot open shared object file: No such file or directoryImportError:
链接: 1
链接: 2

编写Dockerfile文件

将dockerfile与项目代码、放在同级目录下

vim Dockerfile

docker部署Flask项目_第2张图片

------制作镜像----------
FROM zhouyang/centos-python3.6:latest #从宿主机拉取基础镜像
MAINTAINER Lemon    #创建者
WORKDIR /data/limeng/flask_test2    # 配置容器工作目录,病进入目录
COPY facenet-retinaface-pytorch-main/ ./facenet-retinaface-pytorch-main/        #将宿主机目录下的所有文件,复制到容器目录下
COPY .bashrc  /opt/app-root/src/
COPY cuda-10.2/  /usr/local/cuda-10.2/
RUN source  ~/.bashrc   #运行指定命令              
RUN pip install --upgrade pip
RUN pip install -r requirements.txt -i https://pypi.doubanio.com/simple
RUN yum install libXrender-devel.x86_64
WORKDIR /etc/yum.repos.d/ 
RUN rm -rf *
COPY base.repo ./
RUN yum clean all
RUN yum makecache
COPY urlgrabber-ext-down /usr/libexec/
WORKDIR /data/limeng/flask_test2/facenet-retinaface-pytorch-main
------制作镜像----------
------启动容器----------
CMD python Server.py      #启动容器时指定默认执行的命令,Dockerfile只允许使用一次CMD指令,一般都是脚本中最后一条指令
------启动容器----------

COPY指令注意事项

COPY <src>... <dest>
  • src为一个目录的时候,会自动把目录下的文件复制过去,目录本身不会复制
  • 如果src为多个文件,dest一定要是一个目录

构建镜像

docker build -f ./Dockerfile -t facenet:v1 .

需要注意的是,在 docker build 命令接收的参数中,提供给 docker build 命令的

  • -f 选项应该 Dockerfile 路径名。如果 Dockerfile 文件就叫 Dockerfile 那么文件名可省略,如果 Dockerfile 文件就在当前目录下,那么 -f 选项可省略
  • -t 选项编译后的镜像名为facenet:v1

启动容器

docker run -d   -p 8000:8000 --name ocr_paddle --gpus all -v /data:/data facenet:1.0
docker exec -it facenet bash

你可能感兴趣的:(服务器,docker,flask,容器)