我正在构建一个运行锯齿 SDK 的移动应用程序。我想向我的锯齿网络提交交易,但收到此错误:java.net.SocketTimeoutException: failed to connect to/172.18.0.1 from/192.168.2.5 (port 46198) after 10000ms
我使用的是带有桥接网络配置的 Ubuntu 16.04 虚拟机,虚拟机的 IP 为192.168.2.8
。我正在使用 docker-compose 与 docker 设置锯齿网络,按照官方说明找到 here 。这是 yaml 文件:
services:
settings-tp:
image: hyperledger/sawtooth-settings-tp:1.0
container_name: sawtooth-settings-tp-default
depends_on:
- validator
entrypoint: settings-tp -vv -C tcp://validator:4004
intkey-tp-python:
image: hyperledger/sawtooth-intkey-tp-python:1.0
container_name: sawtooth-intkey-tp-python-default
depends_on:
- validator
entrypoint: intkey-tp-python -vv -C tcp://validator:4004
xo-tp-python:
image: hyperledger/sawtooth-xo-tp-python:1.0
container_name: sawtooth-xo-tp-python-default
depends_on:
- validator
entrypoint: xo-tp-python -vv -C tcp://validator:4004
validator:
image: hyperledger/sawtooth-validator:1.0
container_name: sawtooth-validator-default
expose:
- 4004
ports:
- "4004:4004"
# start the validator with an empty genesis batch
entrypoint: "bash -c \"\
sawadm keygen && \
sawtooth keygen my_key && \
sawset genesis -k /root/.sawtooth/keys/my_key.priv && \
sawadm genesis config-genesis.batch && \
sawtooth-validator -vv \
--endpoint tcp://validator:8800 \
--bind component:tcp://eth0:4004 \
--bind network:tcp://eth0:8800 \
\""
rest-api:
image: hyperledger/sawtooth-rest-api:1.0
container_name: sawtooth-rest-api-default
ports:
- "8008:8008"
depends_on:
- validator
entrypoint: sawtooth-rest-api -C tcp://validator:4004 --bind rest-api:8008
shell:
image: hyperledger/sawtooth-all:1.0
container_name: sawtooth-shell-default
depends_on:
- rest-api
entrypoint: "bash -c \"\
sawtooth keygen && \
tail -f /dev/null \
\""
我的主机运行的是 Windows 10 Pro,IP 为 192.168.2.6
我手机上的IP是192.168.2.5
我的容器具有以下 IP:172.18.0.1
。我知道如果我想让它们进行通信,它们需要位于同一网络中,并且我尝试更改容器 IP,但我没有运气。对于如何解决这个问题有什么建议吗?谢谢。
最佳答案
使用您的配置中的这段代码
rest-api:
...
ports:
- "8008:8008"
Docker 将主机的 8008 端口映射到容器的 8008。这意味着容器正在监听主机的 8008。所以你只需要连接到 192.168.2.8:8008,不需要搞乱路由或其他任何事情。
关于android - java.net.SocketTimeoutException : failed to connect to/172. 18.0.1(端口8008)来自/192.168.2.5(端口46198)10000ms后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63781337/