画像を変更したり、コンテナを停止/開始することなく、runitmeで一部のDockerコンテナポートを一時的に無効にしたいと考えています。一時的にDockerで公開されているポートを無効にする
私はいくつかのサービスを実行しており、Webクライアント、認証サービス、mongodbインスタンス、およびロードバランサをすべて同じVM内に持っています。
ドッカーで実行時に公開されたポートを変更するAPIがないので、私はiptablesコマンドで作業する必要があります。
したがって、パラメータとして渡された特定のコンテナ名に関連するポートを無効にするコードをいくつか作成しました。
I認証サーバに対して次のルールがあります。
-A DOCKER -d 172.18.0.16/32 ! -i br-3ec61cf14e6e -o br-3ec61cf14e6e -p tcp -m tcp --dport 8081 -j ACCEPT
私のコードは次のように変更します。私はもう認証することができません期待していこの時点で
-A DOCKER -d 172.18.0.16/32 ! -i br-3ec61cf14e6e -o br-3ec61cf14e6e -p tcp -m tcp --dport 8081 -j DROP
を、しかし、私はまだそれを行うことができます。
ロードバランサに対して同じコードを試しても、すべて正常に動作しますが、期待通りにURLにアクセスできません。 nginxのための
これらのオリジナルのルール:ここ
-A DOCKER -d 172.18.0.11/32 ! -i br-3ec61cf14e6e -o br-3ec61cf14e6e -p tcp -m tcp --dport 81 -j ACCEPT -A DOCKER -d 172.18.0.11/32 ! -i br-3ec61cf14e6e -o br-3ec61cf14e6e -p tcp -m tcp --dport 80 -j ACCEPT -A DOCKER -d 172.18.0.11/32 ! -i br-3ec61cf14e6e -o br-3ec61cf14e6e -p tcp -m tcp --dport 443 -j ACCEPT
修正するもの:ドッキングウィンドウのpsコマンドの出力
[[email protected] ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d007479faaf4 service-auth-nodejs "/bin/sh -c \"/usr/bin" 2 days ago Up 2 days 0.0.0.0:8081->8081/tcp authentication-microservice c073989b49ce nginx "/bin/bash -c /etc/ng" 2 days ago Up 2 days 0.0.0.0:443->443/tcp, 0.0.0.0:9000->80/tcp, 0.0.0.0:10000->81/tcp nginx-microservice 432ea895d90a web "/bin/sh -c \"/usr/bin" 2 days ago Up 2 days 0.0.0.0:8000->8000/tcp webclient-microservice 0c8141da8c0b mongo "/entrypoint.sh mongo" 2 days ago Up 2 days 0.0.0.0:27017->27017/tcp mongo-microservice [[email protected] ~]#
以下
-A DOCKER -d 172.18.0.11/32 ! -i br-3ec61cf14e6e -o br-3ec61cf14e6e -p tcp -m tcp --dport 81 -j DROP -A DOCKER -d 172.18.0.11/32 ! -i br-3ec61cf14e6e -o br-3ec61cf14e6e -p tcp -m tcp --dport 80 -j DROP -A DOCKER -d 172.18.0.11/32 ! -i br-3ec61cf14e6e -o br-3ec61cf14e6e -p tcp -m tcp --dport 443 -j DROP
私は何かが足りないのですか?
サブネットは同じです。認証には172.18.0.16、nginxには172.18.0.11となります。 質問には、両方のサービスのすべてのルール、ロードバランサのルールと認証用のルールがあります。 – carlomas