无法从 Docker 容器连接到比特币 RPC

问题描述 投票:0回答:0

我正在尝试通过 docker 安装 bitfeed 并将其连接到在同一主机上运行的比特币核心(在裸机上;在 docker 之外)。

无论我尝试什么,bitfeed 的“api”容器在尝试连接到比特币 RPC 时都会给我“连接被拒绝”的错误,我正在尝试弄清楚如何允许 RPC 从 docker 连接到主机。下面是我的比特币配置以及我试图与比特币对话的应用程序的 docker-compose——以及对每一个的更多评论。

任何帮助将不胜感激!

这是我的

bitcoin.conf
。起点是 Raspibolt 指南 的副本。正如你所看到的,我的“rpcallow...”有点乱,因为我一直在尝试添加越来越多的东西来让它工作!

# RaspiBolt: bitcoind configuration
# /home/bitcoin/.bitcoin/bitcoin.conf

# Bitcoin daemon
server=1
txindex=1

# Network
listen=1
listenonion=1
proxy=127.0.0.1:9050
bind=127.0.0.1


# Connections
rpcport=8332
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
rpcallowip=192.168.50.11 #trying the machine's IP address
rpcallowip=172.17.0.1/16 #the IP range for my docker0 network interface
rpcallowip=172.18.0.1/16 #the IP range for the bitfeed_default docker network
rpcauth=[user:passwordhash]
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333
zmqpubsequence=tcp://127.0.0.1:28334
[email protected]          # for Electrs

# Raspberry Pi optimizations
maxconnections=40
maxuploadtarget=5000

# Initial block download optimizations
#dbcache=2000
#blocksonly=1

这是我的

docker-compose.yml
bitfeed。请注意
network_mode: host
是如何被注释掉的。当我在主机模式下运行这个堆栈时,我确实能够在 8332 上连接到比特币的 RPC 服务......但是当我让 docker 处理网络时我无法让它工作,这是更可取的,因为我想保留比特币核心与尽可能多的其他东西隔离开来。

version: "2.1"

services:
  web:
    image: ghcr.io/bitfeed-project/bitfeed-client:v2.3.4
    restart: on-failure
    stop_grace_period: 1m
    depends_on:
      - 'api'
    environment:
      TARGET: 'docker'
      BACKEND_HOST: 'api'
      BACKEND_PORT: '6000' 
    expose:
      - '3080:80' 

  api:
    image: ghcr.io/bitfeed-project/bitfeed-server:v2.3.4
    user: '1001:1001'
    restart: on-failure
    stop_grace_period: 1m
    volumes:
      - '/home/bitcoin/.bitcoin:/bitcoin:ro'
    extra_hosts:
      - 'host.docker.internal:host-gateway'
    #network_mode: host 
    environment:
      PORT: '6000' 
      BITCOIN_HOST: 'host.docker.internal' 
      BITCOIN_ZMQ_RAWBLOCK_PORT: '28332'
      BITCOIN_ZMQ_RAWTX_PORT: '28333'
      BITCOIN_ZMQ_SEQUENCE_PORT: '28334'
      BITCOIN_RPC_PORT: '8332' 
      BITCOIN_RPC_COOKIE: /bitcoin/.cookie

尝试在主机网络模式下运行 bitfeed 堆栈,这确实有效,但不是我的首选设置。

尝试谷歌搜索并为

bitcoin.conf
ufw
添加各种规则,但我觉得我在一遍又一遍地尝试同样的东西,所以我要放弃了!

预期结果:bitfeed 应用程序的“api”容器成功连接到比特币 RPC 并同步内存池 实际结果:“api”容器抛出错误:尝试 RPC 连接时连接被拒绝

bitcoin bitcoind
© www.soinside.com 2019 - 2024. All rights reserved.