Page 1 of 1

Any practical way of running i2pd with docker compose?

Posted: 29 May 2026 16:44
by Alyh
Hi, I tried running i2pd using docker compose within a separate docker network. My aim is to completely migrate my existing i2pd.conf and tunnels.conf.d file/directory into the docker environment, but right now I'm facing some problems. I copied the files from the hosts i2pd installation into a separate data directory that I then bind mounted into the container. Then I used the "command" parameter within my docker-compose.yml to point to my config. Here's the compose file:

Code: Select all

services:
  i2pd:
    image: purplei2p/i2pd
    container_name: i2pd
    hostname: i2pd
    #network_mode: host
    networks:
      - net_i2p
    ports:
      - 7070:7070
    volumes:
      - ./i2pd/data:/home/i2pd/data               # make sure data directory and it's contents are owned by 100:65533
    command: --conf=/home/i2pd/data/i2pd.conf --tunconf=/home/i2pd/data/tunnels.conf --tunnelsdir=/home/i2pd/data/tunnels.conf.d/
    restart: always

networks:
  net_i2p:
On the host system I changed the permissions of the data directory so the container can actually use it:

Code: Select all

chown -R 100:65533 ./i2pd/data
The first thing that is somewhat concerning is that this message gets logged right after starting the container: "ln: /home/i2pd/data/certificates/i2pd_certificates: Permission denied" and I can't find out why there are any permission errors.

The second and much bigger problem is that can't access the webui unless I let the container use the host's network. When the container is running inside the docker network there by default is no reaction whatsoever when trying to access the webui. Changing the listen address of the webui to 0.0.0.0 returns an almost blank page, only saying "host mismatch".

Is there anyway to fix this and use i2pd inside docker just the same way you would use the non-dockerized daemon?