首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >geth控制台不能连接到geth码头容器。

geth控制台不能连接到geth码头容器。
EN

Ethereum用户
提问于 2018-03-10 02:21:57
回答 2查看 2.2K关注 0票数 1

我再次问这个问题,尽管有一个类似的问题被问到这里。我用我所读到的东西来回答这个问题,认为这是正确的方法,但它对我也不起作用。

基本上,我在docker容器中运行geth实例,并试图从我的主机连接geth控制台。

代码语言:javascript
复制
The docker command is as follows:

if [ $# -eq 0 ]
  then
    echo "No arguments supplied"
else
  docker container run --network etherdev_net --rm --name etherdev_$1 -p 8545:8545 -v $gethdir/$1:/root/.ethereum -v $gethdir/$1/.ethash:/root/.ethash -v $bootnodedir:/root/bootnode etherdev
fi

码头容器入口点基本上调用一个shell脚本。

代码语言:javascript
复制
geth --networkid 5493 --bootnodes "$(echo -n 'enode://'; bootnode --writeaddress -nodekey /root/bootnode/nodekeyfile | tr -d '\n'; echo '@192.168.2.2:30301')" --mine --rpc --rpcport "8545" --port "30303" --rpccorsdomain "*" --nat "any" --rpcapi eth,web3,personal,net --etherbase 0 --unlock "$(cat /root/.ethereum/geth/security/coinbase)" --password /root/.ethereum/geth/security/password.sec

然后,我在我的主机上运行这个命令来附加一个geth控制台,但是它返回一个错误消息“致命:未能启动JavaScript控制台: api模块: Post http://localhost:8545:EOF”。

代码语言:javascript
复制
geth attach http://localhost:8545

我已经验证了,如果我执行了"docker容器exec -it . /bin/sh“,我就可以使用相同的命令"geth”连接到geth。

这里怎么了?8545端口发布错误吗?

EN

回答 2

Ethereum用户

发布于 2018-03-10 04:24:21

当在码头集装箱外运行时,它就像一个远程系统一样连接。而且geth attach不能使用geth attach连接到远程geth节点。这个回答更好地解释了它的细节。

解决问题的方法可以是Web3-控制台。您可以使用它如下:

代码语言:javascript
复制
npm install -g @digix/web3-console
web3-console

这将建立到web3到localhost:8545的连接,并为您提供一个控制台。

票数 1
EN

Ethereum用户

发布于 2020-02-03 20:33:39

这是因为您在尝试连接时使用回送接口。只需尝试使用:

代码语言:javascript
复制
docker run --rm -it ethereum/client-go \
attach http://$(ip route \
|grep "default via" \
|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' \
|grep -m2 "" \
|tail -1):8545
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/42283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档