Docker 容器的网络隔离,无法直接访问主机上的这个地址。错误显示为连接超时(httpx.ConnectTimeout)。
解决方案:
-
使用主机网络模式启动容器:
在启动 Docker 容器时使用--network=host参数,这样容器将直接使用主机的网络栈。docker run --network=host 其他参数... 镜像名 -
使用特殊的主机名访问主机:
- 在 Linux 上,容器内可以使用
host.docker.internal访问主机 - 对于 macOS 和 Windows,Docker 已内置支持
host.docker.internal - 您需要修改 AI 插件的配置,将 Ollama 地址从
127.0.0.1:11434改为host.docker.internal:11434
- 在 Linux 上,容器内可以使用
-
端口映射和转发:
使用 Docker 端口映射,将容器内的请求转发到主机:docker run -p 8888:8888 -p 11434:11434 其他参数... 镜像名 -
创建自定义 Docker 网络:
创建一个自定义的 Docker 网络,将容器和主机连接到同一网络:docker network create ai-network docker run --network=ai-network 其他参数... 镜像名 -
如果您使用 Docker Compose:
在 docker-compose.yml 文件中添加:services: jupyterlab: # 其他设置... extra_hosts: - "host.docker.internal:host-gateway"
最佳解决方案是使用 host.docker.internal 主机名,这是访问 Docker 主机最可靠的方式。













网友评论