Docker 容器如何使用宿主机 Clash 代理

副标题 / 摘要 宿主机能访问 OpenAI,不代表 Docker 容器也能访问。本文记录一次 sub2api 容器无法完成 OpenAI OAuth 的排障过程,并给出一种不绑定 Docker 网段 IP 的配置方式。 目标读者 使用 Docker Compose 部署服务的开发者 在服务器上使用 Clash、Mihomo 或类似代理的用户 遇到容器内访问 OpenAI、GitHub、Google 等服务超时的人 需要理解 127.0.0.1、Docker 网桥和宿主机代理关系的人 背景 / 动机 问题表面上是 sub2api 后台提示: 未设置代理,当前服务器无法直连 OpenAI,导致 OpenAI OAuth 请求失败。 请先选择可访问 OpenAI 的代理后重试;如果授权码已失效,请重新生成授权链接。 容易产生的疑问是:我的电脑明明可以访问 OpenAI,Codex 也能用,为什么 Docker 里的服务不行? 原因是 Codex、浏览器、终端和 Docker 容器不一定走同一条网络路径。宿主机上的程序可以使用 127.0.0.1:7890 代理,但容器里的 127.0.0.1 指向的是容器自己,不是宿主机。 核心概念 宿主机的 127.0.0.1 不是容器的 127.0.0.1 如果 Clash 只监听: 127.0.0.1:7890 那么只有宿主机本机进程能访问它。Docker 容器访问 127.0.0.1:7890 时,访问的是容器内部的 7890 端口,通常什么都没有。 ...

2026年5月15日 · 3 分钟 · map[name:Jeanphilo]

Docker 常用使用教程:从入门到 Compose 实战(含 save/load 与权限排障)

标题 Docker 常用使用教程:从入门到 Compose 实战(含 save/load 与权限排障) 副标题 / 摘要 很多人会 docker run,但一到离线交付和挂载权限就卡住。 本文按“能直接落地”的顺序,带你走完 Docker 常用命令、Dockerfile、Compose、save/load,以及最常见的 UID/GID 权限问题。 目标读者 想系统掌握 Docker 日常用法的开发者 需要用 Docker Compose 跑本地或测试环境的工程师 经常遇到“挂载目录写不进去”权限问题的人 背景 / 动机 在“我的机器能跑、你的机器跑不起来”的场景里,Docker 的价值不是概念,而是交付稳定性。 但实际使用中,常见断点通常在三处: 命令会用,但不知道整套流程怎么串起来 需要离线迁移时,不清楚 save/load 怎么和 Compose 配合 挂载宿主目录后,容器用户与宿主目录属主不一致导致 Permission denied 核心概念 镜像(Image):应用运行模板,分层存储,可复用 容器(Container):镜像的运行实例 仓库(Registry):镜像分发中心(如 Docker Hub) 卷(Volume):由 Docker 管理的数据持久化目录 Bind Mount:把宿主机目录直接挂载进容器 Compose:用一个 compose.yaml 管理多容器应用 一、安装与最小验证 先确保 Docker CLI 与 daemon 可用: docker --version docker info docker run --rm hello-world 如果 hello-world 能成功输出欢迎信息,说明基础环境已就绪。 ...

2026年2月12日 · 3 分钟 · map[name:Jeanphilo]