Go-Ethereum

如何使用乙太坊 docker 映像設置專用網路?

  • April 8, 2019

我對如何獲取/訪問容器內的 geth 感到困惑。

到目前為止,我有:

docker pull ethereum/client-go

看起來這個圖像是為在公共網路上工作而設計的。我必須製作自己的dockerfile嗎?

我需要在該 dockerfile 中包含什麼以及如何訪問 geth?

geth 應該安裝在“主機”作業系統/圖像/容器所在的位置,還是可以單獨安裝在 docker 容器中?

如果要創建私有網路,則需要創建自己的 genesis 文件(請參閱client-go Docker 映像文件的“操作私有網路”部分。

如果您在文件夾中創建它,然後在該文件夾中的命令行上執行:

docker run --name ethereum-node -v ${PWD}:/private-data \
  ethereum/client-go init /private-data/genesis.json

應該初始化節點。

然後你應該能夠使用他們給出的命令來啟動節點:

docker run -d --name ethereum-node -v /Users/alice/ethereum:/root \
  -p 8545:8545 -p 30303:30303 \
  ethereum/client-go --fast --cache=512

如果您想附加到該正在執行的節點以訪問 Javascript CLI,請執行以下操作:

docker exec -it ethereum-node /user/bin/geth attach

Geth 不需要安裝在主機作業系統上,它可以駐留在 Docker 容器中。如果您想控制區塊鏈數據的保存位置,您可以更改-v命令以指向主機作業系統中的不同位置,以儲存容器生成的數據。

我一直在做這樣的事情,但沒有使用官方圖片 - https://github.com/the-chaingang/ethereal

如果您可以訪問docker-compose,您應該能夠使用docker-compose up.

Dockerfile 和入口點程式碼應該可以幫助您重新開始:geth 安裝等。

希望有幫助。

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