Habrahabrには、i2pdに関する優れた記事があります。 このプロジェクトの唯一の欠点は、その作成者がUbuntuとDebian専用のパッケージを提供することです。これは、CentOSユーザーにとっては不便です。
私のようなCentOS 7ホームNASの所有者は、ソースからi2pdをビルドするか、 Dockerを使用してDebian Jessieイメージの上にインストールできます。
そのため、この記事はDocker for CentOS 7でi2pdを使用してコンテナーを作成することに専念しています。
Dockerをインストールする
Dockerには、最新バージョンを含む独自のリポジトリがあります。 接続するには、次の内容の/etc/yum.repos.d
ファイルをdocker.repo
に作成します。
[dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg
次に、必要なパッケージをインストールします。
$ sudo yum install docker $ sudo yum install docker-engine $ sudo systemctl enable docker.service $ sudo systemctl start docker
これで、インストールが正しいことを確認できます。
$ sudo docker run --rm hello-world
そして、すべてが問題なければ、コンテナにふけるユーザーをdockerグループに追加するだけです。
$ sudo usermod -aG docker cube
画像を作成する
これを行うには、次の内容のDockerfile
を作成する必要があります。
FROM debian:jessie MAINTAINER Cube <kyb.6.granei@yandex.ru> # , # EXPOSE 4444 4447 7070 9439 # RUN apt-get update && apt-get upgrade # i2pd RUN apt-get install -y wget \ libboost-date-time1.55.0 \ libboost-filesystem1.55.0 \ libboost-program-options1.55.0 \ libboost-system1.55.0 \ libminiupnpc10 # i2pd RUN cd /tmp && wget https://github.com/PurpleI2P/i2pd/releases/download/2.9.0/i2pd_2.9.0-1jessie1_amd64.deb RUN dpkg -i /tmp/i2pd_2.9.0-1jessie1_amd64.deb RUN rm /tmp/i2pd_2.9.0-1jessie1_amd64.deb # i2pd - # shell RUN usermod -s /bin/bash i2pd # i2pd # COPY i2pd.conf /etc/i2pd/i2pd.conf COPY subscriptions.txt /etc/i2pd/subscriptions.txt # . # ENTRYPOINT exec su - i2pd -c "/usr/sbin/i2pd --conf ~/i2pd.conf"
Dockerfileの横に2つのファイルがあります。
- i2pd.conf(設定を作業しますが、必要に応じて、好みに合わせて修正できます):
log = stdout daemon = false service = false ## Port to listen for connections ## By default i2pd picks random port. You MUST pick a random number too, ## don't just uncomment this port = 9439 ## Enable communication through ipv4 ipv4 = true ## Enable communication through ipv6 ipv6 = true ## Bandwidth configuration ## L limit bandwidth to 32Kbs/sec, O - to 256Kbs/sec, P - to 2048Kbs/sec, ## X - unlimited ## Default is X for floodfill, L for regular node bandwidth = O ## Router will be floodfill # floodfill = true [http] ## Uncomment and set to 'false' to disable Web Console enabled = true ## Address and port service will listen on address = 0.0.0.0 port = 7070 [httpproxy] ## Uncomment and set to 'false' to disable HTTP Proxy enabled = true ## Address and port service will listen on address = 0.0.0.0 port = 4444 ## Optional keys file for proxy local destination # keys = http-proxy-keys.dat [socksproxy] ## Uncomment and set to 'false' to disable SOCKS Proxy enabled = true ## Address and port service will listen on address = 0.0.0.0 port = 4447
- subscriptions.txtはサブスクリプションファイルです
http://inr.i2p/export/alive-hosts.txt http://stats.i2p/cgi-bin/newhosts.txt http://i2p-projekt.i2p/hosts.txt http://i2host.i2p/cgi-bin/i2hostetag http://no.i2p/export/alive-hosts.txt http://rus.i2p/hosts.txt http://udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p/hosts.txt
次に、コマンドを実行してイメージを作成します。 Dockerは必要なレイヤーを自動的にダウンロードしてインストールします。
$ docker build -t i2pd .
コンテナを起動します
$ docker run --name=i2pd -td -p 7070:7070 -p 4444:4444 -p 4447:4447 -p 9439:9439 i2pd
-p
スイッチは、どのポートを外部に開くかを示し、 -td
はプロセスをバックグラウンドで開始しますが、ログをstdoutに書き込み続けます。
$ docker logs -t i2pd
起動後、i2pdコンソールはポート7070
で使用でき、http-およびsocks-proxy 4447
それぞれポート4444
および4447
使用できます。
怠け者のために
自分でコンテナを作成したくない人のために、Dockerハブの準備を整えました。 次の1つのコマンドでインストールされます。
$ docker pull hexaedron/i2pd
上記とまったく同じ方法で開始します。
おわりに
この記事をgithubのリンクで締めくくります-Dockefile自体、start-stopおよびconfigs用のスクリプトがいくつかあります。 誰かがこの情報が役立つことを願っています。 私は建設的な批判を喜んでいます。