玩转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检测即可

<code># 安装 Docker Compose

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七牛云又拍云SFTPFTPWebDavMinio多种数据库驱动支持,MySQL 5.7+PostgreSQL 9.6+SQLite 3.8.8+SQL Server 2017+支持配置使用多种缓存驱动,MemcachedRedisDynamoDB、等其他关系型数据库,默认以文件的方式缓存多图上传、拖拽上传、粘贴上传、动态设置策略上传、复制、一键复制链接强大的图片管理功能,瀑布流展示,支持鼠标右键、单选多选、重命名等操作自由度极高的角色组配置,可以为每个组配置多个储存策略,同时储存策略可以配置多个角色组可针对角色组设置上传文件、文件夹路径命名规则、上传频率限制、图片审核等功能支持图片水印、文字水印、水印平铺、设置水印位置、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 并调用对应的模型了。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。