目录
1 镜像制作
基于GPU的deepseek大模型docker镜像,是在基于KOS的docker镜像的基础上,在容器镜像中安装cuda,并将大模型运行在容器镜像中。下面是基于GPU的容器镜像的制作过程。
图1.1 整体架构
软硬件环境
本次使用的软硬件环境如下:
机型:NF5466G7
操作系统:Keyarchos5.8 SP2
内存:256G
磁盘空间:4T
GPU型号及显存:NVIDIA T4 16G * 4
Ollama: 0.5.7
第一步: 创建容器镜像
创建的基础镜像是KOS5.8sp2的docker镜像,下载链接:http://kos.ieisystem.com/kos-isos/kos_docker/KeyarchOS-5.8-SP2-U1-x86_64-docker-20241211.tar,通过DockerFile进行创建。
DockerFile内容如下:
# 使用本地镜像作为基础镜像
FROM keyarchos:5.8sp2u1
COPY ollama-linux-amd64.tgz /ollama-linux-amd64.tgz
RUN dnf -y install tar
RUN cd / && tar xvf ollama-linux-amd64.tgz -C /root && cp -r /root/bin/* /bin && cp -r /root/lib/* /lib && rm -rf ollama-linux-amd64.tgz /root/*
#安装cuda
COPY cuda-rhel8.repo /etc/yum.repos.d/
RUN dnf install -y cuda-toolkit-12-3
ENV PATH=/usr/local/cuda/bin:$PATH
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
#
COPY deepseek-r1:7b.* /
#文件下载链接:#http://kos.ieisystem.com/kos-isos/kos_docker/deepseek-r1_7b.gguf
#http://kos.ieisystem.com/kos-isos/kos_docker/deepseek-r1_7b.mf
# 设置环境变量
ENV OLLAMA_HOST=0.0.0.0:11434
# 映射容器内的端口到主机的端口(例如:容器内端口 14144 映射到主机端口 14144)
EXPOSE 11434
COPY start-7b.sh /start-7b.sh
RUN chmod +x /start-7b.sh
CMD ["/start-7b.sh"]
Dockerfile文件下载链接:
http://kos.ieisystem.com/kos-isos/kos_docker/docker_gpu/Dockerfile
创建进行执行命令:docker build -t deepseek-kos-7b .
图1.2 创建镜像
第二步:导出构建的image,命令如下:
将第一步制作的镜像导出来。需要联外网,/etc/yum.repos.d下需配置DockerFile中的源(cuda-rhel8.repo)。
cuda-rhel8.repo文件下载链接: http://kos.ieisystem.com/kos-isos/kos_docker/cuda-rhel8.repo
执行命令:
docker save -o deepseek-kos-7b.tar deepseek-kos-7b:latest
第三步:加载docker镜像
导出的镜像是tar格式,docker可以进行加载。命令如下:
Docker load -i deepseek-kos-7b.tar
图1.3 加载镜像
第四步:启动docker容器
启动的时候需要指定宿主机与容器映射的位置:
执行:docker run -d -p 11333:11434 -v /home/7b:/ollama --gpus all --name dpks7b deepseek-kos-7b:latest
0c040ed64109554c6009dc89636dc6151f1098e62bd47546da7ad457eef031c8
图1.4 启动镜像
上图中-p 11333:11434是将容器内的11434端口映射成11333,可以通过宿主机访问容器中的大模型。
第五步:进入容器
执行命令 :
docker exec -it 0c040ed64109554c6009dc89636dc6151f1098e62bd47546da7ad457eef031c8 bash
图1.5 进入容器
第六步:启动镜像
为了启动大模型,进入容器,执行命令 : sh /start_7b.sh
进入/ollama下 执行 sh start-7b.sh
注:
start_7b.sh 文件下载链接:http://kos.ieisystem.com/kos-isos/kos_docker/start_cpu/start-7b.sh
如下图所示:
图1.6 启动容器镜像
进入容器后,通过脚本一键实现模型创建和启动等操作
2 Docker镜像测试
第一节启动容器镜像后,配置chatbox之后(如图2.2),使用大模型始终GPU使用显示:
图2.1 大模型启用前
配置了容器大模型提供的端口:
图2.2 端口配置
图2.3启动大模型
GPU使用情况显示:
图2.4 GPU使用状态
3 常见问题
1、创建镜像过程中,空间不够,因为docker默认安装在/var目录下,
解决方法:需要更换docker的位置或者清理docker。
如:docker system prune -a -f --volumes
2、启动的时候名称不可重复
图3.1 冲突截图
说明已经存在相同名称的镜像在运行。
解决方法:修改容器的名称后再启动。