【发布时间】:2018-07-20 23:55:31
【问题描述】:
我有一个简单的 python 服务,它向正在运行的比特币服务器发送一条命令。当我运行本地比特币守护程序时,一切正常。但是,当我尝试使用 Docker 运行它时,我无法将此服务连接到另一个 docker 映像中的比特币服务器,就像在这个 docker-compose 中一样:
version: '3'
services:
my_service:
build: .
volumes:
- .:/app
depends_on:
- bitcoind
links:
- bitcoind
working_dir: /app
bitcoind:
image: ruimarinho/bitcoin-core:0.15.0.1-alpine
command:
-printtoconsole
-regtest=1
-rest
-rpcallowip=10.211.0.0/16
-rpcallowip=172.17.0.0/16
-rpcallowip=192.168.0.0/16
-rpcpassword=bar
-rpcport=18333
-rpcuser=foo
-server
ports:
- 18333:18333
volumes:
bitcoin_data:
我不断收到以下错误:
ConnectionError: HTTPConnectionPool(host='bitcoind', port=18333): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7faded979310>: Failed to establish a new connection: [Errno -2] Name or service not known',))
有什么想法吗?
【问题讨论】:
-
进入bitcoind容器,查看18333端口是否开启,服务是否运行。
-
您的服务的入口点是什么?它是如何尝试连接的(例如连接字符串)?另外,参考。 rpcallowip 设置,你确定你是从这些 CIDR 范围之一连接(看不到任何 docker 网络配置设置 - 正在运行的容器的 IP 是什么) - 尝试 rpcallowip=0.0.0.0?
标签: docker docker-compose bitcoin bitcoind