In docker, Geth refers to the official client software provided by the Ethereum Foundation, written in the Go programming language; the Geth client provides an interactive command console, which contains Various functions of Ethereum.

The operating environment of this tutorial: linux5.9.8 system, docker-1.13.1 version, Dell G3 computer.
What is geth
Geth is the official client software provided by the Ethereum Foundation and is written in the Go programming language. Geth provides an interactive command console that contains various functions (APIs) of Ethereum. The full name is go-ethereum.
docker deploys geth client
Install docker
Self-Baidu
Second, pull the above image down, and just pull the latest one
docker pull ethereum/client-go
Third, let’s talk about the parameters of docker run
Because it is official If the mirror is started directly, it will default to geth and directly synchronize with the main network. We definitely don’t want it to be synchronized directly. The command is as follows
docker run -d -it --name=node0 -u root -p 8545:8545 -p 30303:30303 -v E:\eth:/root --privileged=true --entrypoint /root/a.sh ethereum/client-go
-v means to mount the local file
-- privileged real sudo permissions
--entrypoint entry script, if it exists, it will overwrite the statement in the dockerfile
I chose to initialize the private chain in this script. How to initialize can see the official tutorial Similar to my previous article
My script
#!/bin/sh #初始化创世区块 geth -datadir /root/data init /root/gener.json if [ $# -lt 1 ]; then exec "/bin/sh" else exec /bin/sh -c "$@" fi
Four startup private chain
There is a problem to note here, that is, the startup parameters are different. Updated
It used to be --rpc --rpcapi, now it is changed to --http balabala
HTTP based JSON-RPC API options:
--httpEnable the HTTP-RPC server--http.addrHTTP-RPC server listening interface (default:localhost)--http.portHTTP-RPC server listening port (default:8545)--http.apiAPI's offered over the HTTP-RPC interface (default:eth,net,web3)--http.corsdomainComma separated list of domains from which to accept cross origin requests (browser enforced)--wsEnable the WS-RPC server--ws.addrWS-RPC server listening interface (default:localhost)--ws.portWS-RPC server listening port (default:8546)--ws.apiAPI's offered over the WS-RPC interface (default:eth,net,web3)--ws.originsOrigins from which to accept websockets requests--ipcdisableDisable the IPC-RPC server--ipcapiAPI's offered over the IPC-RPC interface (default:admin,debug,eth,miner,net,personal,shh,txpool,web3)--ipcpathFilename for IPC socket /pipe within the datadir (explicit paths escape it)
So now the startup command becomes
geth --networkid 666 --http --http.addr=0.0.0.0 --http.port=8545 --http.api "web3,eth,debug,personal,net" --http.corsdomain "*" --allow-insecure-unlock --datadir /root/data console 2>>geth.log
What should I do next
Test with web3 connection
var Web3 = require('web3'); var Tx = require('ethereumjs-tx').Transaction; if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); console.log("1"+web3.version) } else { // set the provider you want from Web3.providers web3 = new Web3(new Web3.providers.HttpProvider('http://127.0.0.1:8545')); console.log(web3.version) }
Recommended learning: "docker video tutorial"
The above is the detailed content of What is geth in docker. For more information, please follow other related articles on the PHP Chinese website!
The difference between k8s and docker
What are the methods for docker to enter the container?
What should I do if the docker container cannot access the external network?
What is the use of docker image?
How to cancel automatic renewal on Baidu Netdisk
How to find the maximum and minimum value of array elements in Java
Three commonly used encoding methods
How to register on Binance