限制来自 docker 容器内的 HTTP 流量
Restricting HTTP traffic from within a docker container
我需要确保只有 HTTPS 流量来自 docker 容器。
限制来自容器的 HTTP(或任何其他端口)的最佳方法是什么?
容器本身不监听任何端口。容器内的工具发出 HTTP/HTTPS 请求以获取许可证。我需要确保它只能执行 HTTPS 请求。
最好在docker主机端阻止流量吗?
像这样:
iptables -I DOCKER-USER -i ext_if -p tcp --dport http -j REJECT
我不想弄乱 Docker 在初始化时创建的所有表。
如果您需要限制特定容器上的流量(不是主机级别,不是所有容器),您必须在容器中添加防火墙规则。这是一个例子:
运行 带有 NET_ADMIN capability
的容器
docker run --rm -it --cap-add=NET_ADMIN debian
安装 iptables 和 curl
apt update && apt install iptables curl
添加防火墙规则
ptables -A OUTPUT -p tcp --dport 80 -j DROP
然后测试规则:
curl http://www.google.com
curl https://www.google.com
我需要确保只有 HTTPS 流量来自 docker 容器。
限制来自容器的 HTTP(或任何其他端口)的最佳方法是什么?
容器本身不监听任何端口。容器内的工具发出 HTTP/HTTPS 请求以获取许可证。我需要确保它只能执行 HTTPS 请求。
最好在docker主机端阻止流量吗?
像这样:
iptables -I DOCKER-USER -i ext_if -p tcp --dport http -j REJECT
我不想弄乱 Docker 在初始化时创建的所有表。
如果您需要限制特定容器上的流量(不是主机级别,不是所有容器),您必须在容器中添加防火墙规则。这是一个例子:
运行 带有 NET_ADMIN capability
的容器docker run --rm -it --cap-add=NET_ADMIN debian
安装 iptables 和 curl
apt update && apt install iptables curl
添加防火墙规则
ptables -A OUTPUT -p tcp --dport 80 -j DROP
然后测试规则:
curl http://www.google.com
curl https://www.google.com