カテゴリー
開発・Web制作

Podman の CNI を IPv6 に対応してみる

IPv6 ならコンテナ全部に IP アドレス振りたいですが、それができない環境だったのでポートフォワーディング(IP マスカレード)でやりくりする方法を調べました。

カテゴリー
開発・Web制作

Podman のドキュメントの場所

Docker はイメージ作成からコンテナの実行まで全部ひっくるめて Docker と呼んでいます。一方 podman は役割分担が進んでいて機能に応じて呼び名が異なり、ドキュメントの場所もいろいろ分かれているのでまとめてみました。

カテゴリー
開発・Web制作

firewalld でポートフォワーディングのログをとる (CentOS 8)

firewall-cmd で podman に行く通信のログを出してみようと思ったらでなかったので、解決策を調べました。

カテゴリー
開発・Web制作

コンテナと SELinux

Linux についてそこそこ詳しくなったので、そろそろ SELinux と本気で向き合おうとしている今日この頃です。SELinux 自体は下記のサイトさんが分かりやすくてなんとなく理解できた気がします。

理由がわかれば怖くない!SELinux とのつきあい方

今回はどうやってそれをコンテナに適用するか、調べてみました。

カテゴリー
開発・Web制作

postfix の Dockerfile を書く

大体イメージは Docker Hub に上がってることが多いので、個人的には Dockerfile 書くのは php の拡張を入れる時くらいしかないです。ただ、postfix は公式のイメージがなさそうなので、最初から作ってみることにしました。ひとまずメール送るだけの postfix を立てます。

カテゴリー
開発・Web制作

Node.js で中間証明書が設定されていない Web サイトにアクセスする(コンテナ版)

以前書いた記事では update-ca-trust を使用しましたが、今回は update-ca-certificates を使用します。事象としては同じで、以下のエラーが出ます。

{ Error: unable to verify the first certificate
    at TLSSocket.onConnectSecure (_tls_wrap.js:1047:34)
    at TLSSocket.emit (events.js:182:13)
    at TLSSocket._finishInit (_tls_wrap.js:629:8) code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' }
カテゴリー
開発・Web制作

VS Code Remote 繋ぐと podman がエラーを返す

開発用サーバーで作業中、podman で以下のようなエラーが発生しました。

Error: error configuring CNI network plugin: failed to add watch on "/etc/cni/net.d/": no space left on device

VS Code を閉じると出なくなるので、原因はこの子みたいです。

カテゴリー
開発・Web制作

nginx コンテナのログを Logwatch で拾う

Logwatch は基本的にログファイルを監視するツールです。しかし、コンテナのログはファイルではなく podman logs や docker logs コマンドで参照する作りになっていることが多いです。今回 nginx コンテナを立ててログドライバーを変更し、コンテナのログをホストの journald に貯めるようにしたので journald から取得できないか試してみました。

カテゴリー
開発・Web制作

podman のコンテナ名で通信する

コンテナを複数立ち上げた場合、他のコンテナへアクセスする場合は

  • 10.88.0.60 のように、起動のたびに変わるIPを指定する
  • 10.88.0.1:8080 のように、ホストのIPを指定&ポートフォワーディング
  • pod を使ってコンテナをまとめる

の3パターンがあります。Docker だと IP ではなくコンテナ名でアクセスできたので、podman でもできないか試してみました。

カテゴリー
開発・Web制作

podman のコンテナやポッドを自動起動する

CentOS 8 で、 podman のコンテナやポッドをホストの起動時に自動起動する方法です。自分で systemd の unit ファイルを作ったらうまくいかなかったのですが、便利なコマンドがありました。