通知设置 新通知
微信公众号自定义消息
php • zhaohaiqiang 发表了文章 • 0 个评论 • 31 次浏览 • 2025-03-28 15:20
微信公众号自定义发消息总是将源码给发出来,试了各种转义都不行,记着加header( " content-Type : application/xml");
微信公众号自定义发消息总是将源码给发出来,试了各种转义都不行,记着加header( " content-Type : application/xml");
AI大模型公网如何不暴露11434端口
AI大模型 • zhaohaiqiang 发表了文章 • 0 个评论 • 83 次浏览 • 2025-03-11 11:19
背景:
随着大模型本地部署的热潮,好多伙伴在自己服务器部署了基于ollama的大模型(deepseed-r1,qwen,qwq),好多人会不留意直接在宿主机直接开放11434端口,会将这个端口暴露给所有人开放,属实 ...查看全部
背景:
随着大模型本地部署的热潮,好多伙伴在自己服务器部署了基于ollama的大模型(deepseed-r1,qwen,qwq),好多人会不留意直接在宿主机直接开放11434端口,会将这个端口暴露给所有人开放,属实危险,最近被网安通知要求整改
解决方案:
第一步:使用docker容器化ollama服务,在容器内安装各种大模型,然后通过docker公网网关ip对其他服务提供11434接口(需要注意的是,不要把容器的11434端口映射给宿主机的11434端口,即使映射了也要用防火墙屏蔽住对所有人的开放情况【0.0.0.0:11434】)
第二步:服务器部署了dify ragflow open-webui等大模型使用的框架,也需要docker容器化,映射给宿主机一些不常用的端口,并且加上反向代理,使用域名访问这些服务,因为这些框架系统都是需要登录才能使用的,所以有效避免了11434在公网服务器的暴露,既实现了本地部署大模型的需求,又不会暴露公网11424端口
注意事项:
以下是我解决这些问题过程中遇到的坑:
1.首先是对自己服务器的配置要有认知,多大的资源运行多大的模型
推荐配置
[size]8GB RAM[/size]:可以运行较小的模型(如 7B 模型)。
[size]16GB RAM[/size]:可以运行中等大小的模型(如 13B 模型)。
[size]32GB RAM[/size]:可以运行较大的模型(如 33B 模型)
通过选择合适的模型大小、使用量化技术、限制显存使用和调整模型保留时间,可以有效减少 Ollama 模型的内存占用。
2.为docker分配合适的内存与资源
3.【重中之重】,一定要将宿主机的GPU资源挂载进docker容器内,让ollama容器能够使用GPU资源,否则ollama会全部使用CPU资源来计算,有多少CPU资源都不够消耗的
nvidia-smi # 查看 GPU 使用情况
ollama ps # 查看 Ollama 的 GPU 使用情况
docker rm ollama
docker run -d --gpus all -p 11434:11434 -v ollama:/root/.ollama --name ollama ollama/ollama
docker_compose.yaml 配置
services:
ollama_rBnh:
image: ollama/ollama:${VERSION}
# container_name: ${CONTAINER_NAME}
deploy:
resources:
limits:
cpus: ${CPUS}
memory: ${MEMORY_LIMIT}
reservations:
devices:
- capabilities: [gpu]
restart: unless-stopped
tty: true
ports:
- ${HOST_IP}:${OLLAMA_PORT}:11434
volumes:
- ${APP_PATH}/data:/root/.ollama
labels:
createdBy: "bt_apps"
networks:
- baota_net
networks:
baota_net:
external: true
====================================================================================
docker常用命令:
容器操作
运行一个容器
bash
复制
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -d -p 8080:80 nginx:后台运行一个 Nginx 容器,并将宿主机的 8080 端口映射到容器的 80 端口。
启动一个已停止的容器
bash
复制
docker start CONTAINER
docker start my_container:启动名为 my_container 的容器。
停止一个运行中的容器
bash
复制
docker stop CONTAINER
docker stop my_container:停止名为 my_container 的容器。
强制停止一个容器
bash
复制
docker kill CONTAINER
docker kill my_container:强制停止名为 my_container 的容器。
删除一个容器
bash
复制
docker rm CONTAINER
docker rm my_container:删除名为 my_container 的容器。
进入一个运行中的容器
bash
复制
docker exec -it CONTAINER /bin/bash
docker exec -it my_container /bin/bash:进入名为 my_container 的容器的终端。
查看容器列表
bash
复制
docker ps
docker ps:列出所有运行中的容器。
docker ps -a:列出所有容器,包括已停止的。
查看容器日志
bash
复制
docker logs CONTAINER
docker logs my_container:查看名为 my_container 的容器的日志。
镜像操作
搜索镜像
bash
复制
docker search IMAGE
docker search nginx:搜索 Docker Hub 上的 Nginx 镜像。
拉取镜像
bash
复制
docker pull IMAGE
docker pull nginx:从 Docker Hub 拉取 Nginx 镜像。
构建镜像
bash
复制
docker build -t TAG PATH
docker build -t my_image .:从当前目录构建一个名为 my_image 的镜像。
删除镜像
bash
复制
docker rmi IMAGE
docker rmi nginx:删除本地的 Nginx 镜像。
查看镜像列表
bash
复制
docker images
docker images:列出本地所有镜像。
数据卷操作
创建数据卷
bash
复制
docker volume create VOLUME
docker volume create my_volume:创建一个名为 my_volume 的数据卷。
查看数据卷列表
bash
复制
docker volume ls
docker volume ls:列出所有数据卷。
删除数据卷
bash
复制
docker volume rm VOLUME
docker volume rm my_volume:删除名为 my_volume 的数据卷。
网络操作
创建网络
bash
复制
docker network create NETWORK
docker network create my_network:创建一个名为 my_network 的网络。
查看网络列表
bash
复制
docker network ls
docker network ls:列出所有网络。
查看网络详情
bash
复制
docker network inspect NETWORK
docker network inspect my_network:查看名为 my_network 的网络的详细信息。
删除网络
bash
复制
docker network rm NETWORK
docker network rm my_network:删除名为 my_network 的网络。
其他命令
查看 Docker 版本
bash
复制
docker version
docker version:查看 Docker 的版本信息。
查看 Docker 系统信息
bash
复制
docker info
docker info:查看 Docker 的系统信息。
清理未使用的资源
bash
复制
docker system prune
docker system prune:清理未使用的容器、网络、镜像和数据卷。
导出容器为镜像
bash
复制
docker export CONTAINER -o FILE
docker export my_container -o my_image.tar:将名为 my_container 的容器导出为一个镜像文件。
导入镜像
bash
复制
docker import FILE IMAGE
docker import my_image.tar my_imported_image:从文件导入一个镜像。
这些命令涵盖了 Docker 的基本操作,从容器的创建、启动、停止、删除,到镜像的管理、数据卷和网络的配置等。通过这些命令,你可以有效地管理和操作 Docker 容器和相关资源。
解决使用https克隆克隆代码,每次pull都要输入用户名密码问题
Linux知识 • zhaohaiqiang 发表了文章 • 0 个评论 • 3501 次浏览 • 2024-02-19 17:29
1、使用https克隆克隆代码,每次pull都要输入用户名密码
1)执行命令
git config --global credential.helper store
说明1: 此命令为全局缓存身份验证信息
2)删 ...查看全部
1、使用https克隆克隆代码,每次pull都要输入用户名密码
1)执行命令
git config --global credential.helper store
说明1: 此命令为全局缓存身份验证信息
2)删除全局身份认证信息
git config --global --unset credential.helper store
3)不同的项目使用不同的账号
说明1:第一次克隆输入账户名密码
说明2: 进入到项目
说明3: 执行命令
git config credential.helper store
说明4: 再次执行git pull,需要输入账号及密码
说明5: 再次git pull,就不需要了
利用 curl 发送 post get del put patch 请求
回复默认分类 • lina 回复了问题 • 1 人关注 • 1 个回复 • 4605 次浏览 • 2019-07-22 13:33