CentOS 7のDockerコンテナーでi2pdを起動する

画像 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つのファイルがあります。



 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 


 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用のスクリプトがいくつかあります。 誰かがこの情報が役立つことを願っています。 私は建設的な批判を喜んでいます。



Source: https://habr.com/ru/post/J312926/


All Articles