docker部署Flask项目

安装指令

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

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

请添加图片描述

#查看下载好的镜像
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

请添加图片描述

------制作镜像----------
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 commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

docker save 和 docker load(用于加载由 docker save 创建的 tar 文件)在镜像的备份和迁移中仍然非常有用。

启动容器

docker run -d   -p 8000:8000 --name ocr_paddle --gpus all -v /data:/data facenet:1.0
docker exec -it facenet bash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值