iptablesやnftablesと絡んだLinuxカーネルとdockerの問題って、結局どうするのが正しいの?

julien-tromeur-EOSHmMbjT8g-unsplash.jpg

質問

iptablesやnftablesと絡んだLinuxカーネルとdockerの問題って、結局どうするのが正しいの?


さわって学ぶクラウドインフラ docker基礎からのコンテナ構築 【電子書籍】[ 大澤 文孝 ]

価格:2970円
(2026/6/20 20:08時点)
感想(0件)

【POD】手軽に使うDockerの本 コピって使える用途別コンテナカタログ (技術の泉シリーズ(NextPublishing)) [ 山田 英伸 ]

価格:2420円
(2026/6/20 20:08時点)
感想(0件)


解答

これは結構ややこしい話ですが、結論から言うと、

今のLinuxでは「nftablesを使う」が基本方針。しかしDockerは依然としてiptables前提の部分が多いため、Docker環境では両者の関係を理解して設定する必要がある。

という状況です。

背景

昔のLinuxファイアウォールは

iptables

でした。

その後、

nftables

が登場し、Linuxカーネルの標準的なパケットフィルタリング基盤になりました。

現在の多くのディストリビューションでは、

UbuntuDebianRHELFedora

などで nftables が推奨されています。

Dockerが問題を起こす理由

Dockerはコンテナ通信のために大量のルールを自動生成します。

例えば、

docker0↓NAT↓ポートフォワード

などです。

Docker起動時に

iptables -t nat

へルールを書き込みます。

実際には

DOCKERDOCKER-USERDOCKER-FORWARD

といったチェーンが作られます。

現代のLinuxでは

実は

iptables

と打っても、

内部的には

iptables-nft

が動いている場合があります。

つまり

iptablesコマンド↓nftablesへ変換↓カーネル

です。

UbuntuやDebianではよくあります。

なぜ混乱するのか

問題は

nftablesルール

Dockerのiptablesルール

を別々に管理すると、

思った通りに動かないことがあるからです。

例えば

nftで許可↓Docker側で拒否

Dockerが勝手にルール追加↓nftルールと競合

など。

一番安全な考え方

現在は

パターン1

Dockerにiptables管理を任せる

{  "iptables": true}

(デフォルト)

最も一般的です。

Docker公式も基本これを想定しています。

パターン2

ホスト側はnftables

Dockerはiptables-nft

実際にはこれが今の標準的な構成です。

Docker↓iptables-nft↓nftables↓Kernel

利用者は

nft list ruleset

で確認します。

あまりおすすめしない

Dockerのiptablesを無効化

{  "iptables": false}

すると、

DockerがNATもポート転送も作らなくなります。

その結果、

  • 自分でNAT設定

  • 自分でForward設定

  • 自分でFilter設定

が必要になります。

Kubernetesや特殊なネットワーク構成以外では大変です。

Linuxカーネルとの関係

カーネル内部では現在、

netfilter

という仕組みが動いています。

実は

iptables

nftables

も、

最終的には

netfilter

へルールを渡しています。

イメージとしては

iptables   ↓nftables   ↓netfilter   ↓Kernel

です。

最近の環境では

iptables = 古い管理ツールnftables = 新しい管理ツールnetfilter = カーネル本体

と考えると理解しやすいです。

実務的な正解

現在(2026年時点)なら、

  • nftablesベースのディストリビューションを使う

  • Dockerのiptables管理は有効のまま

  • iptables-nftを利用する

  • DOCKER-USERチェーンで独自制御する

が最も無難です。

特にサーバー運用では、

iptables=false

にして全てを自前管理するのは、明確な理由がない限り避けることが多いです。

そのため実務上は、

「DockerにはDockerのネットワーク設定をやらせ、管理者はDOCKER-USERチェーンやnftablesで必要な制御を追加する」

という形が現在の主流に近い運用です。



Citrix XenDesktop デスクトップ&アプリケーション仮想化 実践ガイド【電子書籍】[ シトリックス・システムズ・ジャパン株式会社 ]

価格:4620円
(2025/11/2 22:58時点)
感想(0件)


Webエンジニアのための監視システム実装ガイド【電子書籍】[ 馬場俊彰 ]

価格:2992円
(2026/3/7 16:03時点)
感想(0件)


 



この記事へのコメント