Linux でファイアウォールを有効にすると、Docker コンテナが次のエラーで起動します: エラー: IP テーブルのセットアップに失敗しました: SKIP DNAT ルールを有効にできません

目次

1. エラーシナリオと現象

2. 原因分析

3. 解決策


1. エラーシナリオと現象

Linux がファイアウォールをオンにするか再起動した後、Docker カスタム ネットワークを作成するとき

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 frayernet

报错:[root@VM-16-5-centos home]# docker network create --driver Bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 frayernet
デーモンからのエラー応答: IP テーブルのセットアップに失敗しました: IP テーブルをセットアップできませんSKIP DNAT ルールを有効にする: (iptables が失敗しました: iptables --wait -t nat -I DOCKER -i br-3d8c7623fb81 -j RETURN: iptables: その名前によるチェーン/ターゲット/一致はありません。(終了ステータス 1)
 )

次のように:

[root@VM-16-5-centos home]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 frayernet
Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-3d8c7623fb81 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))

2. 原因分析

Docker はコンテナ化テクノロジであるため、ホストのファイアウォールのステータスが変化すると、Docker はコンテナの IP を設定できなくなります。

テストでは既存の mysql コンテナを起動しようとします。

[root@VM-16-5-centos conf]# docker start c092

同じエラーが発生します。

デーモンからのエラー応答: ドライバーがエンドポイント mysql5.7-cdcs-cd での外部接続のプログラミングに失敗しました (ac43ff409d232efe3eace11b5f2b9d08b8f98c949e7fb43323bc289240560e38): (iptables が失敗しました: iptables --wait -t nat -A DOCKER -p tcp -d 0/0) --dポート3306 - j DNAT --to-destination 172.17.0.3:3306 ! -i docker0: iptables: Nochain/target/match by that name.
 (exit status 1))
エラー: コンテナの起動に失敗しました: c092

3. 解決策

「service docker restart」コマンドを入力して、次の Docker を再起動します。

[root@VM-16-5-centos home]# service docker restart

おすすめ

転載: blog.csdn.net/louis_lee7812/article/details/127678836