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








All Articles