This Dockerfile is based on the excellent work from ruimarinho/docker-bitcoin-core.
The changes from upstream include:
- removal of everything except the very minimal
alpine
images for the latestbitcoin
version - separation of
berkeleydb
stage into a separate image - removal of the entrypoint
- removal of an extra user
- overall simplifications and following defaults
- more…
NOTE: ZMQ
block
andtx
ports are set to28332
and28333
respectively.
latest
,0.17
,0.17.1
- currently latest version of Bitcoin Core for botharm
andamd64
0.17.1-linux-arm
- Bitcoin Core version 0.17.1 forarm
architecture (built manually on an RBP)0.17.1-linux-amd64
- Bitcoin Core version 0.17.1 foramd64
architecture (built via CI)
First pull the image from Docker Hub:
docker pull lncm/bitcoind:0.17.1
NOTE: Running above will automatically choose native architecture of your CPU.
Then to start bitcoind, execute:
docker run -it --rm \
-v ~/.bitcoin:/root/.bitcoin \
-p 8332:8332 \
-p 8333:8333 \
-p 28332:28332 \
-p 28333:28333 \
--name bitcoind \
--detach \
lncm/bitcoind:0.17.1
That will run bitcoind such that:
- all data generated by the container is stored in
~/.bitcoin
on your host machine, - port
8332
will be reachable for the RPC communication, - port
8333
will be reachable for the peer-to-peer communication, - port
28332
will be reachable for ZMQ block notifications, - port
28333
will be reachable for ZMQ transaction notifications, - created container will get named
bitcoind
, - that command will run the container in the background and print the ID of the container being run.
To issue any commands to a running container, do:
docker exec -it bitcoind BINARY COMMAND
Where:
BINARY
is eitherbitcoind
orbitcoin-cli
, andCOMMAND
is something you'd normally pass to the binary
Examples:
docker exec -it bitcoind bitcoind --help
docker exec -it bitcoind bitcoind --version
docker exec -it bitcoind bitcoin-cli --help
docker exec -it bitcoind bitcoin-cli -getinfo
docker exec -it bitcoind bitcoin-cli getblockcount