Эта страница содержит сведения для версии 0.9.50.

Установка I2P в Docker

Очень быстрый старт

Если вы просто хотите попробовать I2P или используете его в домашней сети, выполните следующие шаги:

  1. Создайте две директории "i2pconfig" и "i2ptorrents"
  2. Скопируйте следующий текст и сохраните его в файле "docker-compose.yml".
  3. 
    version: "3.5"
    services:
        i2p:
            image: geti2p/i2p
            network_mode: host
            volumes:
                - ./i2pconfig:/i2p/.i2p
                - ./i2ptorrents:/i2psnark
    
  4. Выполните команду "docker-compose up"
  5. Запустите браузер и перейдите по адресу http://127.0.0.1:7657, чтобы завершить работу мастера настройки.

Обратите внимание, что этот подход быстрого запуска не рекомендуется для производственного развертывания на удаленных серверах. Пожалуйста, прочитайте остальную часть этого документа для дополнительной информации.

Построение изображения

На сайте DockerHub доступен образ i2P. Если вы не хотите использовать этот образ, вы можете собрать его самостоятельно:

docker build -t i2p .

Запуск контейнера

Тома

Контейнеру необходим том для установки данных конфигурации. По желанию можно установить отдельный том для загрузки торрентов ("i2psnark"). См. пример ниже.

Использование памяти

By default the image limits the memory available to the Java heap to 512MB. You can override that with the JVM_XMX environment variable.

Порты

Существует несколько портов, которые открываются через образ. Вы можете выбрать, какие из них открывать, в зависимости от ваших конкретных потребностей.

Порт Сетевой интерфейс Описание TCP/UDP
4444 127.0.0.1 HTTP Прокси TCP
4445 127.0.0.1 HTTP Прокси TCP
6668 127.0.0.1 IRC-прокси TCP
7654 127.0.0.1 Протокол I2CP TCP
7656 127.0.0.1 SAM Bridge TCP TCP
7657 127.0.0.1 Консоль маршрутизатора TCP
7658 127.0.0.1 Сайт I2P TCP
7659 127.0.0.1 SMTP Прокси TCP
7660 127.0.0.1 POP3 Прокси TCP
7652 LAN-интерфейс UPnP TCP
7653 LAN-интерфейс UPnP UDP
12345 0.0.0.0 Протокол I2NP TCP и UDP

Вам, вероятно, нужны, как минимум, консоль маршрутизатора (7657) и HTTP-прокси (4444). Если вы хотите, чтобы I2P мог принимать входящие соединения из интернета и, следовательно, не думать, что он заблокирован, опубликуйте порт протокола I2NP (12345) - но убедитесь, что вы публикуете на другой случайный порт, иначе другие могут догадаться, что вы запускаете I2P в Docker-образе.

Работа в сети

Руководство по лучшей практике для облачных применений выходит за рамки данного документа, но в целом вам лучше попытаться минимизировать количество открытых портов, открывая для интернета только порты I2NP. Это означает, что доступ к сервисам из приведенного выше списка, привязанным к 127.0.0.1 (к которым относится консоль маршрутизатора), необходимо получить другими способами, например, через туннелирование ssh, или вручную настроить привязку к другому интерфейсу.

Пример

Вот пример контейнера, который устанавливает i2phome в качестве домашнего каталога, i2ptorrents для торрентов и открывает протоколы HTTP Proxy, IRC, Router Console и I2NP. Он также ограничивает память, доступную для JVM, до 256 МБ.

docker run \
    -e JVM_XMX=256m \
    -v i2phome:/i2p/.i2p \
    -v i2ptorrents:/i2psnark \
    -p 4444:4444 \
    -p 6668:6668 \
    -p 7657:7657 \
    -p 54321:12345 \
    -p 54321:12345/udp \  # I2NP port needs TCP and UDP.  Change the 54321 to something random, greater than 1024.
    i2p:latest