玩转Docker:Lsky pro图床+私有化部署大模型(Ollama+Openwebui)
流情 2024-09-03 16:03:03 阅读 56
最近搞了一个测试服务器,捣鼓了下一键搭建dnmp集成环境,然后还搭建了一个Lysk pro图床服务,后面又看到了开源大模型,也试着搭建了一下,中间出了一点小插曲。不过也算搭建成功了。做一个小结汇总。
1.前情回顾
DNMP:基于docker搭建集成LNMP(nginx+mysql+php)-CSDN博客
关于一键式命令搭建dnmp集成环境,可以参考我上一个博客。真的就是一行命令~简单到不能再简单了。
进入你的纯净版服务器终端属于下面一行命令,然后静待即可...脚本是放到我自己的服务器上,不知道什么时候就会失效。不过脚本代码已经公开出来了。自取吧。
<code>wget http://http://114.116.118.165/dnmp.sh && bash dnmp.sh
tips:如果运行到安装docker-compose提示报ssl错误
找到脚本中对应的安装代码,改成 curl -K -L "https://example.com" 这种的,跳过SSL检测即可
if ! curl -K -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose; then
echo -e "${RED}Docker Compose 下载失败,请检查错误并重试。${NC}"
exit 1
fi
2.Lsky图床
支持 本地
等多种第三方云储存 AWS S3
、阿里云 OSS
、腾讯云 COS
、七牛云
、又拍云
、SFTP
、FTP
、WebDav
、Minio
多种数据库驱动支持,MySQL 5.7+
、PostgreSQL 9.6+
、SQLite 3.8.8+
、SQL Server 2017+
支持配置使用多种缓存驱动,Memcached
、Redis
、DynamoDB
、等其他关系型数据库,默认以文件的方式缓存多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能支持图片水印、文字水印、水印平铺、设置水印位置、X/y 轴偏移量设置、旋转角度等支持通过接口上传、管理图片、管理相册支持在线增量更新、跨版本更新图片广场
功能还是挺丰富的,界面也很友好,作为个人图床确实很不错。这个网上的搭建教程应该也有,不过对于我这种追求极简主义的人来说,教程说的太细太繁琐会看的我脑仁疼,所以这里做个简单教程。
以前面我们运行一键命令的前提基础下操作,这里我们相当于安装了docker,docker-compose,mysql,nginx等等服务了。所以,直接直接通过配置docker-compose.yml来安装Lsky pro容器给即可。
进入你的dnmp目录,编辑docker-compose.yml配置文件,加上Lsky容器相关配置:
<code>version: "3"
services:
lsky-pro:
container_name: lsky-pro
image: dko0/lsky-pro
restart: always
volumes:
- ./data/html:/var/www/html #映射到本地
ports:
- 7791:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
nginx:
build:
context: ./services/nginx
args:
NGINX_VERSION: nginx:${NGINX_VERSION}
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
NGINX_INSTALL_APPS: ${NGINX_INSTALL_APPS}
container_name: nginx
ports:
- "${NGINX_HTTP_HOST_PORT}:80"
- "${NGINX_HTTPS_HOST_PORT}:443"
volumes:
- ${SOURCE_DIR}:/www/:rw
- ${NGINX_SSL_CERTIFICATE_DIR}:/ssl:rw
- ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw
- ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro
- ${NGINX_FASTCGI_PHP_CONF}:/etc/nginx/fastcgi-php.conf:ro
- ${NGINX_FASTCGI_PARAMS}:/etc/nginx/fastcgi_params:ro
- ${NGINX_LOG_DIR}:/var/log/nginx/:rw
environment:
TZ: "$TZ"
restart: always
networks:
- default
# 可以把-default 改成下列配置,以固定容器IP
#default:
# ipv4_address: 10.0.0.10
#......省略后面的代码
然后在dnmp目录下构建容器,运行容器即可。
docker-compose build
docker-compose up
后面用浏览器访问http://ip:端口进行安装。至此就完成了。
3.自建Ollama模型
大模型构建比较占内存,我之前因为不清楚,导致安装后后面运行一直报错500,所以一定要量力而行啊。lz这里的是ubuntn 系统 内存 2G,但是即便如此,也只能安装一个最小的模型。大概要500m。至于其他的动则5G,真是带不动啊~
所以这里建议你如果想安装大模型,先把前面安装的Lsky pro 和mysql,nginx这些容器和服务先停掉。在dnmp目录终端输入:
<code>docker-compose down
卸载完后,你的系统就只有docker,docker-compose.然后再来安装ollama容器:
###docker下载ollama部署
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollama
##使用docker部署webUi页面,${inner_ip}替换为你的本地ip
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://${inner_ip}:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main
运行安装这两个容器后,你就可以访问 http://ip:3000 来进入webUi页面。万事俱备,还欠模型。
以下是最推荐的一些大模型:
(ollama run gemma)安装谷歌gemma大模型
(ollama run llama2)安装Meta llama2大模型
(ollama run qwen)安装阿里的qwen大模型
以上三个各有千秋,但是唯一诟病的就是占内存。所以,这里我推荐用:ollama run qwen2:0.5b
终端输入:docker exec -it <container-id> /bin/bash
container-id为ollama容器id,进入到容器内。后面可输入以下命令进行对应操作:
### 安装模型
ollama pull qwen2:0.5b
### 启动模型
ollama run qwen2:0.5b
### 列出所有安装的模型
ollama list
### 移除模型,NAME模型名称
ollama rm <NAME>
安装模型后,就能访问http://ip:3000 并调用对应的模型了。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。