ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker部署GPU模型服务

2022-08-23 16:02:47  阅读:200  来源: 互联网

标签:容器 镜像 renoyuan 模型 base gpu GPU Docker docker


Docker部署GPU模型服务

GPU 设置

Nvidia 开启GPU的持久模式

nvidia-smi -pm 1

添加docker 插件

# 不是ubuntu 18.04 这里要需要改
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list


sudo apt-get update

sudo apt-get install -y nvidia-container-toolkit

下载基础镜像 -- 也可以自己配置

docker pull renoyuan/gpu_base:latest

启动 gpu docker

docker run  --gpus all -itd -p 8888:8899   --name zx_poc  renoyuan/gpu_base:latest nvdia-smi

Docker 基础

基本结构

镜像仓库 ---> 有开源有公司的用于存放镜像

Docker 服务 ---> 镜像,容器管理工具

镜像---> 打包好的系统环境

容器---> 运行后的镜像实际运行的docker服务

ID --->镜像和容器都有uuid 很多时候使用ID更可靠

命令启动-常用命令

镜像拉取

镜像拉取 默认是从官方仓库拉取的

docker pull renoyuan/gpu_base:latest

镜像上传

#登录远程仓库
docker login # 如果镜像仓库不需要登录可以忽略
#标记要上传的镜像为本地镜像
docker tag 镜像ID renoyuan/gpu_base:latest
#将镜像上传到远程仓库
docker push renoyuan/gpu_base:latest

启动镜像

启动镜像 == 生成容器实例

顺序一定不能错

顺序一定不能错

顺序一定不能错

 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] # **顺序一定不能错**  IMAGE 一定是在参数后面命令前面

docker run  --gpus all -itd -p 8888:8899  --name zx_poc  renoyuan/gpu_base:latest nvdia-smi
# 参数
-i: 交互式操作。
-t: 终端。
-d: 后台运行
-p 端口映射 宿主机:容器
-v 资源映射 宿主机目录:容器目录
--name:容器名字

renoyuan/gpu_base:latest 镜像。
 
nvdia-smi :放在镜像名后的是命令

容器操作

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach <容器 ID>

docker exec <容器 ID>:推荐使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。

退出

exit

停止容器

docker stop uuid|name

启动容器

docker start uuid|name

docker restar uuid|name

删除容器|镜像

docker rm uuid 删除多个可以用空格隔开 -f:表示强制删除

文件传输

docker cp 文件路径 容器id:容器路径

docker cp 容器id:容器路径 文件路径

查询

docker ps -a # 查看容器

docker images # 查看镜像

容器打成镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

sudo docker commit -a "renoyuan" -m "gpu_base" 8462b4eb4157 gpu_base:v0
Option	功能
-a	指定新镜像作者
-c	使用 Dockerfile 指令来创建镜像
-m	提交生成镜像的说明信息
-p	在 commit 时,将容器暂停

本地文件镜像导入导出

docker导入本地镜像

载入快照

cat gpu_base.tar.gz | docker import - gpu_base:v0(镜像名自己定义)

载入镜像

我们有了本地的镜像文件,在需要的时候可以使用docker load将本地保存的镜像再次导入docker中。
docker load --input gpu_base.tar | docker load < gpu_base.tar

docker导出本地镜像

导出镜像

docker save -o gpu_base.tar gpu_base

-o:指定保存的镜像的名字;gpu_base.tar:保存到本地的镜像名称;gpu_base:镜像名字,通过"docker images"查看

导出容器快照

这样将导出容器快照到本地文件。

docker export 1e560fca3906 > gpu_base.tar.gz

DOCKERFILE

说明

运行docker 运行脚本文件 带有一定规范可以不

编写dockerfile

# 指定Python环境
FROM docker pull nvidia/cuda:11.0.3-runtime-ubuntu18.04
# 拷贝Python依赖库requirements文件到当前目录下
ADD requirements.txt /
# 安装依赖库
RUN pip install -r /requirements.txt
# 拷贝所有文件到app目录下
ADD . /app
# 指定app为工作目录
WORKDIR /app
# 声明端口
EXPOSE 5000
# docker容器启动
CMD [ "python" , "app.py"]

docker build命令建立改项目镜像:

docker build -t python_gpu .
docker build -t zxpoc .
# Sending build context to Docker daemon  911.9MB 构建镜像中 

其他

安装docker for ubuntu

一、安装docker

1、安装docker:sudo apt-get install -y docker.io

2、启动docker服务:systemctl start docker

3、设置开机启动:systemctl enable docker

4、查看docker状态:systemctl status docker

5、停止docker服务:systemctl stop docker

6、查看docker版本:docker version

二、非root用户运行docker

1、添加docker用户组:sudo groupadd docker

执行以上命令会提示已存在,原因是在安装docker时已自动创建。

2、将指定用户添加到用户组(username为你的用户名):sudo gpasswd -a username docker

3、查看是否添加成功:cat /etc/group | grep ^docker

3、重启docker:sudo systemctl restart docker

5、更新用户组:newgrp docker

6、执行docker命令,比如:docker ps -a

标签:容器,镜像,renoyuan,模型,base,gpu,GPU,Docker,docker
来源: https://www.cnblogs.com/renoyuan/p/16616551.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有