Go-Ethereum

我可以單獨執行 docker 和 geth 嗎?

  • October 25, 2018

我執行私人 geth 測試網,我的程序在 docker 上。每次我嘗試呼叫 api 我都會得到:沒有 JSON RCP 響​​應。我也必須在 docker 上執行 geth 嗎?

您可以嘗試使用docker-compose與您的應用程序和內置geth docker image

例如

碼頭工人-compose.yml

version: '3'
services:
 geth:
   image: kunstmaan/ethereum-geth-testnet
   ports:
     - "8545:8545"
     - "30303:30303"
   stdin_open: true
   tty: true

 your_app:
   build: ./
   ports:
     - "8080:8080"
   (...)

建構鏡像

$ docker-compose -f docker-compose.yml build

執行

$ docker-compose -f docker-compose.yml up

我遇到了同樣的問題。我有一個在 Docker 容器中執行的 Web 伺服器和一個在我的機器上執行的乙太坊節點(用於測試網)。似乎 Docker 中的應用程序無法連接到它之外的節點。以下是我無需在容器內執行 Geth 節點即可解決該問題的方法:

  1. 確保在啟動 Geth 時有 –rpc 和 –rpccorsdomain 標誌
  2. 在您在 Docker 中執行的應用程序中,確保將您的 web3 提供程序正確指向您的機器https://docs.docker.com/docker-for-mac/networking/對於我必須使用的機器:“docker.for.mac .localhost”。

web3 = new Web3(new Web3.providers.HttpProvider("http://docker.for.mac.localhost:8545"));

引用自:https://ethereum.stackexchange.com/questions/37945