Home

Awesome

lncm/bitcoind

Build Status gh_last_release_svg Docker Image Size Docker Pulls Count

This repo builds bitcoind in an auditable way, and packages it into a minimal Docker containers provided for various CPU architectures.

The work here was initially based on ruimarinho/docker-bitcoin-core, but has significantly diverged since.

Details

NOTE: ZMQ block and tx ports are set to 28332 and 28333 respectively.

Tags

NOTE: For an always up-to-date list see: https://hub.docker.com/r/lncm/bitcoind/tags

Usage

Pull

First pull the image from Docker Hub:

docker pull lncm/bitcoind:v25.0

NOTE: Running above will automatically choose native architecture of your CPU.

Or, to pull a specific CPU architecture:

docker pull lncm/bitcoind:v25.0-arm64v8

Start

First of all, create a directory in your home directory called .bitcoin

Next, create a config file. You can take a look at the following sample: thebox-compose-system (1).

Some guides on how to configure bitcoin can be found here (bitcoin git repo)

Then to start bitcoind, run:

docker run  -it  --rm  --detach \
    -v ~/.bitcoin:/data/.bitcoin \
    -p 8332:8332 \
    -p 8333:8333 \
    -p 28332:28332 \
    -p 28333:28333 \
    --name bitcoind \
    lncm/bitcoind:v25.0

That will run bitcoind such that:

Interact

To issue any commands to a running container, do:

docker exec -it bitcoind BINARY COMMAND

Where:

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

Docker Compose

Here is a docker-compose.yml for mainnet

version: '3'
services:
  bitcoin:
    container_name: bitcoind
    user: 1000:1000
    image: lncm/bitcoind:v25.0
    volumes:
      - ./bitcoin:/data/.bitcoin
    restart: on-failure
    stop_grace_period: 15m30s
    ports:
      - "8333:8333"
      - "8332:8332"
      - "28332:28332"
      - "28333:28333"

First, ensure that the bitcoin/ folder is in the directory containing docker-compose.yml. Then, Docker Compose will mount the bitcoin/ folder to /data/.bitcoin.

Troubleshooting

Bitcoind isn't starting

Here are some possible reasons why.

Permissions for the bitcoin data directory is not correct

The permissions for the bitcoin data direct is assumed to be UID 1000 (first user).

If you have a different setup, please do the following

# where ".bitcoin" is the data directory
sudo chown -R 1000.1000 $HOME/.bitcoin