Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。
色々と弄くり回して分かりにくくなったため、一旦、すべてのDcokerコンテナやイメージも全て削除してやり直ししました。こういうのがDockerの利点ですよね。
前回までの記事をコピペしてサクッと5分で再構築できました。
その後、色々と調べて見直して、外付けHDDはNextcloudアプリの「External Storage」で外部ストレージとしてファイルの中にマウントした形です。(権限者しか共有できない)1人で使う分には過不足ありません。
ネットワークの勉強になる
Dockerは、あまり難しくなくネットワークをバインドして使えるのも利点です。勝手にバインドしてくれるというのか、そこまで心配しなくてもちゃんと連携していて最初は驚きました。もっとも、ネットワークエンジニアにしたらなんでもないことかも知れません。
理解していないのでかなり混乱してしまいます。例えばネットワークインターフェイス。Docker0、bridge、host、none。
自分で新たにブリッジなど作成して使うわけですが、あまり意識しなくても良いのは有り難い。それでもホストコンピューター(Docker入れたラズパイ4)とブリッジ接続でやり取りできてしまいます。
久しぶりに(?)アドレス空間も意識できました。
Dockerもインターネットではなく内部ネットですから、プライベートアドレスを使います。
| クラスA | 10.0.0.0〜10.255.255.255 | 255.0.0.0 |
| クラスB | 172.16.0.0〜172.31.255.255 | 255.240.0.0 |
| クラスC | 192.168.0.0 〜192.168.255.255 | 255.255.255.0 |
IP アドレスの範囲とサブネットマスク
一般的なのは、普段使っているのはクラスCですね。
Dockerを使うと、デフォルトで内部ネットがクラスB、クライアントにクラスA、ホストがクラスCって感じです。
あれこれと弄っても、最悪、コンテナごと削除してやり直すこともできるから結構テキトーに割り振って試せます。昔々のことを思い返すと、ネットワーク周りの学習って、何台かPCが必要でコストもかかりました。今ではDockerの仮想、それもホストPCがラズパイですからね。コスパいいわ。
docker-compose.ymlが楽しい
個人的にツボにハマるのは、ymlです。「ヤメル」って言うの? やめられないけど。
記述方法は好き好きがあります。Pythonと同じようにインデントで処理するのと、シンプルで分かりやすいので好きですね。
インデントにタブは使えません。スペース2つのインデントが基本です。また、リストや配列なども見やすい。
それに間違った記述だと、compose upで的確に教えてくれます。非エンジニアにとってはとっても助かります。かなりピンポイントで間違いに気がつきます。その突っ込みに対応して直せばとりあえず動きますからね。
環境変数がよく分からないので、公式サイトをよくみました。
Compose 内の環境変数 — Docker-docs-ja 24.0 ドキュメント
Obsidianのようなマークダウン形式にも似ているからメモを書く感覚でポチポチとマイペースで楽しめます。
Dockerだと結果がすぐに分かった後、すぐに修正して試せるのが便利この上ない。未体験の人もラズパイをお持ちなら知的好奇心は満たせますからオススメです。
基本のインストール
■Pi 5は8GBモデルがオススメ
OpenMediaVault(OMV)でもDockerしたい?
Dockerはイメージを指定すれば、簡単にデータベースやWebアプリを導入できます。コンテナで動作していても、ラズパイのローカルにインストールするのと素人レベルなら遜色ありませんね。
DockerでNextcloudをNASみたいに使ったのは、iPhoneのアプリが良くできているからです。しかし、何年か前にラズパイのNASとしてOMVを利用しています。これにもDockerをインストールできるんですよ。
以前はOMVについてもDockerについても良く理解していませんでした。少しは分かってきたので、今度はOMVに色んなWebアプリを導入したいですね。
OMV自体のインストールは過去に扱いました。
Raspberry Pi OS bullseyeにOMV6を新規インストール
OMV6とRaspberry Pi 4で作るNASサーバーの設定
個人用のNASとして、ラズパイ4が登場して以来、当時は割安で構築できました。3Bの頃からもう5年くらいずっと使い続けていますけど、電気代が少ないのが一番のメリットですね。
今はラズパイ4自体が手に入りにくくお高くなってしまったので、市販品の方が安心ではあります。
例えば、HDD2台で構築するなら有名なコレ。
ラズパイをケースに入れた状態より数千円高いくらいで、HDDを2台繋ぐのであれば、電話サポートがある製品を選んだ方が確かに無難です。
昔とは違い、市販のNASの記事も多く見かけるようになりました。QuickConnectと呼ばれる外部からリモートアクセスする方法も有効にするだけですからラズパイで構築よりも簡単です。
昔は価格差があったから頑張ってラズパイが代替品にならないかと躍起になっていました。ただ単にNASが欲しいだけなら市販品がよろしいかと思います。
OpenMediaVaultのDockerに何を入れて運用しようか考え中です。
Dockerイメージ〜広告ブロックアプリ
Dockerにも広告ブロックソフトウェアのイメージがあります。有名なのはPi-holeとAdGuard Homeでしょうか。
悪質な広告内容や広告数を減らすために、全て除去されてしまうのは運営者としてはツライですが、かといって、今のような悪質な広告だらけなのはどうかとも思います。
Pi-holeとAdGuard Homeについて、ちょっと調べてトライした中で知った情報があります。DoTなどです。
- DoT(DNS over TLS)
- DoH(DNS over HTTPS)
- DNSSEC(DNS Security Extensions)
Pi-holeにも設定欄などでDNSSECとか見かけます。
私もよく理解していないため詳しくは避けますが、とりあえずWireguardで満足することにしています。
これらをDockerのコンテナで扱う際、内部のPi-holeやAdGuardのIPアドレスをWireguardに記載してあげるとうまく動作します。
環境によりますが、Wireguardのymlにある環境変数を次のようにすると良かったです。
- PEERDNS=auto
- INTERNAL_SUBNET=10.13.13.0
- ALLOWEDIPS=10.13.13.1/32,192.168.0.0/24
(中略)
dns:
- 172.30.0.2 #pi-holeの内部IPアドレス
PEERDNSは色々と変えましたがautoでいいみたい。INERNAL_SUBNETは自由に決めてもらって構いません。クラスAのアドレス範囲が分かりやすい。
ALLOWEDIPSも悩みました。INTERNALのサーバを指定して、ホストPCのネットワークアドレスを指定しました。
加えて、DNSの設定をしてあげると良いみたいですね。内部IPアドレスはPortainerCEを入れるとGUIで簡単に分かります。
逆にPiholeの箇所は、IPアドレスを指定した方が良い。そしてそれをWireguardの箇所にDNSとして追加しています。
networks:
network-pihole:
ipv4_address: 172.30.0.2
(中略)
FTLCONF_LOCAL_IPV4: 192.168.0.111
FTLCONF_LOCAL_IPV4の環境変数があって、ホストPCのIPアドレスを記載しています。
これで無事に起動したら、スマホではなく、例えばローカルのネットワーク設定を変更するとローカルでもPi-holeなどが使えます。
ネットワーク設定はWindowsやMacでは設定画面が異なりますが、DNSサーバの箇所をラズパイのローカルIPアドレス(今回は192.168.0.111)に変更するだけです。
Dockerで構築したPi-holeも、ローカルなら速度面であまり気にならずに使えます。
Pi-holeも設定は色々とできるので、もっと調べてみたいと思いました。
GitHub
GitHub - pi-hole/docker-pi-hole: The official Pi-hole Docker image from pi-hole.net The official Pi-hole Docker image from pi-hole.net - pi-hole/docker-pi-hole
どのイメージも、先ずはGitHubやDockerHubにある情報をよく読んでから始めると楽です。
VPNでスマホからアクセスできると、iCloud有料オプションも考えものだなー。
今回はこの辺で。
動画サイトでは、投げ銭で応援するのが話題です。高額なのはどうかとは思いますが、それなら広告は必要ないかも知れない。
でも、Googleやfacebookは広告がメインの収入だからなー。





