I2pd docker

Материал из I2P-ilita вики
Перейти к навигацииПерейти к поиску

Установка и настройка i2pd через контейнеризацию Docker[править]

Получение образа Docker[править]

Есть два варианта получения образа. Самостоятельная сборка образа и загрузка из регистра hub.docker.com

Через регистр hub.docker.com[править]

Просто выполните в cli:

 docker pull purplei2p/i2pd:latest

Проверьте что образ загрузился:

 docker image ls

Самостоятельная компиляци i2pd и сборка образа Docker[править]

Загрузите репозиторий i2pd:

 git clone https://github.com/PurpleI2P/i2pd.git

Переместите каталог с Dockerfile в ваш рабочий каталог:

 mv ./i2pd/contrib/docker ./

Перейдите в него:

 cd ./docker

Запустите сборку и компиляцию:

 docker buildx build -t i2pd:latest .

Проверьте наличие образа:

 docker image ls

Создание файла конфигурации compose[править]

Для запуска конетейнера при помощи compose файла, можно воспользоваться этой конфигурацией. При запуске будет создан volume под именем *i2pd*.

docker-compose.yml:

version: '3.9'

networks:
  i2pd:
    name: i2pd

volumes:
  i2pd:
    name: i2pd

services:
  i2pd:
    image: i2pd:latest
    container_name: i2pd
    restart: unless-stopped
    ports:
      - "127.0.0.1:7070:7070/tcp"
      - "127.0.0.1:4444:4444/tcp"
      - "127.0.0.1:4447:4447/tcp"
      - "127.0.0.1:7650:7650/tcp"

    networks:
      - i2pd
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - i2pd:/home/i2pd/data

Создайте рабочий каталог в котором будет хранится файл docker-compose.yml:

 mkdir /opt/i2pd-dockerized && cd /opt/i2pd-dockerized

Создайте в нем файл docker-compose.yml и скопируйте в него конфиг приведенный выше:

 touch /opt/i2pd-dockerized/docker-compose.yml

Запуск контейнера через compose[править]

Запустите контейнер находясь в рабочем каталоге:

 docker compose up -d


Проверка работоспособности контейнера[править]

Удостоверьтесь что контейнер в рабочем состоянии:

 docker stats

При необходимости посмотрите логи:

 docker compose logs i2pd

Проверьте что у вас локально прослушиваются порты которые были проброшены из контейнера:

 ss -tnl src :7070
 ss -tnl src :4444
 ss -tnl src :4447

Зайдите на web консоль управления через браузер:

 http://127.0.0.1:7070/

Управление контейнером[править]

Остановка:

 docker compose stop

Удаление:

 docker compose down

Редактирование конфигурации:

 vim /var/lib/docker/volumes/i2pd/_data/i2pd.conf

Обновление контейнера i2pd[править]

Остановите и удалите контейнер командой:

 docker compose down

Удалите старый образ:

 docker image rm i2pd:latest

Загрузите новый образ c hub.docker.com:

 docker pull i2pd:latest

Либо пересобрите образ как описывалось выше.

Создайте новый контейнер и запустите его:

 docker compose up -d

Если вы использовали конфигурацию compose из примера выше, то все данные такие как *netDb* и файлы конфигураций сохранятся, так как они находятся на именованном volume *i2pd*:

 docker volume ls