关于Docker与Ollama代理的二三事
作者: gunhawk时间: 2025-02-27others
Docker代理
由于不可抗力的原因, docker镜像
甚至是公用的镜像源都很难直接访问了. 而私人的镜像源会存在限速或者不稳定等各种问题, 因此设置代理去访问docker镜像
才是根本解决之道(以前要是能成功设置代理, 我还会使用镜像源吗233).
但是, 不管你怎么折腾环境变量, 在docker pull <image>
时, 所有的流量都不会通过你的代理服务器. 这是跟docker的架构是有关系的, 相信看完这篇如何配置docker通过代理服务器拉取镜像, 你会豁然开朗的.
Ollama代理
同样地, 当你下载大模型的时候, 不知道会不会被蛋疼的网络搞得心情烦躁. 但是无论你怎么在终端进行export环境变量
, 下载大模型时的流量也不会经过代理服务器. 这是因为下载大模型的过程是通过Ollama服务器的api进行的, 你可以在服务器日志里面看到/api/download
接口的请求日志.
因此, 要在启动Ollama服务器的进程中设置环境变量, 所幸Ollama的代理环境变量是遵循golang的规范, 即HTTPS_PROXY
和HTTP_PROXY
. 只要在终端先执行导出代理变量, 在启动Ollama服务器即可:
# 1. 设置环境变量
# powershell
$env:HTTPS_PROXY=your_proxy_url
$env:HTTP_PROXY=your_proxy_url
# bash
export HTTPS_PROXY=your_proxy_url
export HTTP_PROXY=your_proxy_url
# 2. 启动服务器
./ollama serve
启动服务器后, 在任意终端进行大模型下载, 流量都会先经过代理服务器拉!!!
一些总结
有时候, 直接导出环境变量进行代理不是万能的, 要以程序架构的思维方式来思考. 只有这样, 才能深入问题的本质, 从而轻松解决.