
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个无需人工交互即可在Docker容器中运行Interactive Brokers Gateway应用的Docker镜像。
包含以下组件:
| 渠道 | IB Gateway版本 | IBC版本 | Docker标签 |
|---|---|---|---|
latest | 10.24.1e | 3.18.0 | latest 10.24 10.24.1e |
stable | 10.19.2d | 3.18.0 | stable 10.19 10.19.2d |
本README可能未包含最新标签,但你可以随时获取https://github.com/users/gnzsnz/packages/container/ib-gateway/***?tag=stable%E5%92%8Chttps://github.com/users/gnzsnz/packages/container/ib-gateway/***?tag=latest%E4%BB%A5%E5%8F%8A%E6%89%80%E6%9C%89%E5%8F%AF%E7%94%A8https://github.com/gnzsnz/ib-gateway-docker/pkgs/container/ib-gateway/%E3%80%82
创建docker-compose.yml(或将ib-gateway服务添加到现有文件中)
yamlversion: "3.4" services: ib-gateway: image: ***-ghcr.xuanyuan.run/gnzsnz/ib-gateway:latest restart: always environment: TWS_USERID: ${TWS_USERID} TWS_PASSWORD: ${TWS_PASSWORD} TRADING_MODE: ${TRADING_MODE:-live} VNC_SERVER_PASSWORD: ${VNC_SERVER_PASSWORD:-} READ_ONLY_API: ${READ_ONLY_API:-} TWOFA_TIMEOUT_ACTION: ${TWOFA_TIMEOUT_ACTION:-exit} AUTO_RESTART_TIME: ${AUTO_RESTART_TIME:-} RELOGIN_AFTER_TWOFA_TIMEOUT: ${RELOGIN_AFTER_TWOFA_TIMEOUT:-no} TWOFA_EXIT_INTERVAL: ${TWOFA_EXIT_INTERVAL:-60} TIME_ZONE: ${TIME_ZONE:-Etc/UTC} ports: - "127.0.0.1:4001:4001" - "127.0.0.1:4002:4002" - "127.0.0.1:5900:5900"
在根目录创建.env文件或设置以下环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
TWS_USERID | TWS**用户名 **。 | |
TWS_PASSWORD | TWS**密码 **。 | |
TRADING_MODE | ** live (实盘)或paper**(模拟) | ** paper **(模拟) |
READ_ONLY_API | ** yes 或no**(参见说明) | ** 未定义 ** |
VNC_SERVER_PASSWORD | VNC服务器密码。若未定义,则不启动VNC服务器。 | ** 未定义 **(VNC禁用) |
TWOFA_TIMEOUT_ACTION | 'exit'(退出)或'restart'(重启),若设置AUTO_RESTART_TIME则设为'restart'。参见IBChttps://github.com/IbcAlpha/IBC/blob/master/userguide.md#second-factor-authentication | 'exit' |
AUTO_RESTART_TIME | 重启IB Gateway的时间,无需每日二次验证。格式为hh:mm AM/PM。参见IBChttps://github.com/IbcAlpha/IBC/blob/master/userguide.md#ibc-user-guide | ** 未定义 ** |
RELOGIN_AFTER_2FA_TIMEOUT | 支持超时后重新登录。参见IBChttps://github.com/IbcAlpha/IBC/blob/master/userguide.md#second-factor-authentication | 'no' |
TIME_ZONE | 时区支持,参见TWS jts.ini文件中的有效值或时区数据库。设置IB Gateway的时区。例如Europe/Paris、America/New_York、Asia/Tokyo | "Etc/UTC" |
.env文件示例:
textTWS_USERID=myTwsAccountName TWS_PASSWORD=myTwsPassword TRADING_MODE=paper READ_ONLY_API=no VNC_SERVER_PASSWORD=myVncPassword TWOFA_TIMEOUT_ACTION=restart AUTO_RESTART_TIME=11:59 PM RELOGIN_AFTER_2FA_TIMEOUT=yes TIME_ZONE=Europe/Lisbon
运行:
$ docker-compose up
镜像下载完成、容器启动后约30秒,容器和Docker主机上的以下端口将准备就绪:
| 端口 | 描述 |
|---|---|
| 4001 | 实盘账户的TWS API端口。 |
| 4002 | 模拟账户的TWS API端口。 |
| 5900 | 当定义VNC_SERVER_PASSWORD时,VNC服务器端口。 |
注意:上述docker-compose.yml中,端口仅暴露给Docker主机的本地(127.0.0.1),而非主机网络。若要暴露给整个网络,请相应修改端口映射(移除'127.0.0.1:')。** 注意 **:参见离开本地主机
克隆仓库
bashgit clone https://github.com/gnzsnz/ib-gateway-docker
修改Dockerfile,使用本地IB Gateway安装文件而非从项目发布版加载:在编辑器中打开Dockerfile,将以下行替换:
dockerRUN curl -sSL https://github.com/gnzsnz/ib-gateway-docker/raw/gh-pages/ibgateway-releases/ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh \ --output ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh RUN curl -sSL https://github.com/gnzsnz/ib-gateway-docker/raw/gh-pages/ibgateway-releases/ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh.sha256 \ --output ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh.sha256
替换为
dockerCOPY ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh
从Dockerfile中移除RUN sha256sum --check ./ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh.sha256(除非需要保留校验和检查)
下载IB Gateway并命名为ibgateway-{IB_GATEWAY_VERSION}-standalone-linux-x64.sh,其中{IB_GATEWAY_VERSION}必须与Dockerfile(第一行)中配置的版本匹配
下载IBC并命名为IBCLinux-{IBC_VERSION}.zip,其中{IBC_VERSION}必须与Dockerfile(第二行)中配置的版本匹配
构建并运行:docker-compose up --build
Docker镜像版本与镜像中的IB Gateway版本对应。参见支持的标签
注意https://github.com/gnzsnz/ib-gateway-docker/blob/master/Dockerfile** 不会 **从IB官网下载IB Gateway安装文件,而是从本项目的https://github.com/gnzsnz/ib-gateway-docker/tree/gh-pages/ibgateway-releases%E4%B8%8B%E8%BD%BD%E3%80%82
这是因为需要能够(重新)构建特定Gateway版本的镜像,而IB仅提供latest或stable版本的下载链接(无“旧版本”下载归档)。
存储在https://github.com/gnzsnz/ib-gateway-docker/tree/gh-pages/ibgateway-releases%E4%B8%AD%E7%9A%84%E5%AE%89%E8%A3%85%E6%96%87%E4%BB%B6%E5%B7%B2%E4%BB%8EIB%E5%AE%98%E7%BD%91%E4%B8%8B%E8%BD%BD%E5%B9%B6%E6%9B%B4%E5%90%8D%E4%BB%A5%E5%8F%8D%E6%98%A0%E7%89%88%E6%9C%AC%E3%80%82
若要直接从IB官网下载Gateway安装文件或使用本地安装文件,修改https://github.com/gnzsnz/ib-gateway-docker/blob/master/Dockerfile%E4%B8%AD%E7%9A%84%E4%BB%A5%E4%B8%8B%E8%A1%8C%EF%BC%9A%60RUN curl -sSL https://github.com/gnzsnz/ib-gateway-docker/raw/gh-pages/ibgateway-releases/ibgateway-$%7BIB_GATEWAY_VERSION%7D-standalone-linux-x64.sh --output ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh** 示例 **:改为RUN curl -sSL https://download2.interactivebrokers.com/installers/ibgateway/stable-standalone/ibgateway-stable-standalone-linux-x64.sh --output ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh`以使用IB官网当前稳定版。
可通过用自定义配置文件覆盖默认配置文件来自定义镜像。
应用和配置文件位置:
| 应用 | 文件夹 | 配置文件 | 默认值 |
|---|---|---|---|
| IB Gateway | /root/Jts | /root/Jts/jts.ini | https://github.com/gnzsnz/ib-gateway-docker/blob/master/config/ibgateway/jts.ini |
| IBC | /root/ibc | /root/ibc/config.ini | https://github.com/gnzsnz/ib-gateway-docker/blob/master/config/ibc/config.ini.tmpl |
要启动IB Gateway,从Dockerfile或运行脚本中执行/root/scripts/run.sh。
IB API协议基于客户端与IB Gateway之间未加密、未认证的原始TCP套接字连接。若IB API端口对网络开放,则网络中的所有设备(包括潜在***设备)均可通过IB Gateway访问你的IB账户。
因此,默认docker-compose.yml仅将IB API端口暴露给Docker主机的**本地主机 **,而非整个网络。
若要从远程设备连接IB Gateway,考虑添加额外安全层(如TLS/SSL或SSH隧道)以保护“明文”TCP套接字免受未授权访问或篡改。
本镜像不包含也不存储任何用户凭据。
凭据在容器启动时通过环境变量提供,主机负责妥善保护(例如使用https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-environment-variables%E7%AD%89%EF%BC%89%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务