Go-Ethereum
如何使用乙太坊 docker 映像設置專用網路?
我對如何獲取/訪問容器內的 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 安裝等。
希望有幫助。