Skip to main content

System Configuration

Run Iota Node using Docker Compose

Tested using:

  • ubuntu 20.04 (linux/amd64) on bare metal
  • ubuntu 22.04 (linux/amd64) on bare metal

Prerequisites and Setup

  1. Confirm you have either Docker Engine or Docker Desktop instllled, as well as Docker Compose.

  2. Update validator.yaml and place it in the same directory as docker-compose.yaml.

Add the paths to your private keys to validator.yaml. If you chose to put them in /opt/iota/key-pairs, you can use the following example:

authority-key-pair:
path: /opt/iota/key-pairs/authority.key
protocol-key-pair:
path: /opt/iota/key-pairs/protocol.key
network-key-pair:
path: /opt/iota/key-pairs/network.key
  1. Place genesis.blob in the same directory as docker-compose.yaml. (available post genesis ceremony)

Connectivity

You may need to explicitly open the ports outlined in Iota for Node Operators for the required Iota Node connectivity.

Start the node

Start Iota Node in detached mode:

sudo docker compose up -d

Logs

By default, logs are stored at /var/lib/docker/containers/[container-id]/[container-id]-json.log.

  • View and follow
sudo docker compose logs -f validator
  • By default all logs are output, limit this using --since
sudo docker logs --since 10m -f validator

Storage

  • What is the size of the local Iota database?
# get the volume location on disk
sudo docker volume inspect docker_iotadb
# get the size of the volume on disk
sudo du -sh /var/lib/docker/volumes/docker_iotadb/_data
  • Delete the local Iota databases (volume)
sudo docker-compose down -v

Updates

  • DO NOT delete the Iota databases
  1. Stop docker compose
sudo docker compose down
  1. Update docker-compose.yaml to reference the new image
-    image: iotaledger/iota-node:<OLD_IOTA_SHA>
+ image: iotaledger/iota-node:<NEW_IOTA_SHA>
  1. Start docker compose in detached mode:
sudo docker compose up -d